Example #1
0
def test_process_housenumber_from_oldban(session):
    data = {
        "type": "housenumber",
        "source": "BAN (2016-06-05)",
        "cia": "90001_0005_2_BIS",
        "group:fantoir": "900010005",
        "numero": "2",
        "ordinal": "BIS",
        "ign": "ADRNIVX_0000000259416737",
        "postcode:code": "90400",
        "postcode:complement": "90002",
        "municipality:insee": "90001"
    }
    group = factories.GroupFactory(municipality__insee="90001",
                                   fantoir="900010005")
    factories.HouseNumberFactory(parent=group, number="2", ordinal="bis")
    factories.PostCodeFactory(municipality=group.municipality,
                              code="90400",
                              complement="90002")
    process_row(data)
    assert models.HouseNumber.select().count() == 1
    housenumber = models.HouseNumber.first()
    assert housenumber.attributes['source'] == "BAN (2016-06-05)"
    assert housenumber.parent == group
    assert housenumber.number == "2"
    assert housenumber.ordinal == "BIS"
    assert housenumber.postcode.code == "90400"
    assert housenumber.postcode.complement == "90002"
    assert housenumber.postcode.municipality.insee == "90001"
    assert housenumber.ign == "ADRNIVX_0000000259416737"
    assert len(housenumber.versions) == 2
Example #2
0
def test_can_update_housenumber_postcode_with_laposte_id(session):
    data = {"type": "housenumber", "source": "Poste (2016-06)",
            "laposte": "060012223P", "postcode:code": "06910",
            "municipality:insee": "06900"}
    postcode = factories.PostCodeFactory(code='06910',
                                         municipality__insee='06900')
    housenumber = factories.HouseNumberFactory(laposte='060012223P')
    process_row(data)
    assert models.HouseNumber.select().count() == 1
    housenumber = models.HouseNumber.first()
    assert housenumber.postcode == postcode
def test_modify_postcode_without_complement(session, monkeypatch):
    monkeypatch.setattr('ban.commands.helpers.confirm', lambda *x, **wk: True)
    mun1 = factories.MunicipalityFactory(insee='33001', name='Mun1')
    mun2 = factories.MunicipalityFactory(insee='33002', name='Mun2')
    pc = factories.PostCodeFactory(municipality=mun2, name='PC2', code='33002')
    merge(mun1.insee, sources=[mun2.insee], name='Toto', label='TOTO')
    pc = models.PostCode.select().where(
        models.PostCode.code == '33002').first()
    assert pc.municipality == mun1
    assert pc.complement == 'PC2'
    assert pc.name == 'TOTO'
Example #4
0
def test_export_postcode():
    pc = factories.PostCodeFactory()
    path = Path(__file__).parent / 'data'
    resources('PostCode', path)

    filepath = path.joinpath('postcode.ndjson')
    with filepath.open() as f:
        lines = f.readlines()
        assert len(lines) == 1
        # Plus, JSON transform internals tuples to lists.
        assert json.loads(lines[0]) == json.loads(dumps(pc.as_export))
    filepath.unlink()
Example #5
0
def test_can_update_housenumber_with_parent_number_and_ordinal(session):
    data = {"type": "housenumber", "source": "Poste (2016-06)",
            "group:laposte": "00067358", "laposte": "060012223P",
            "numero": "5", "ordinal": "", "postcode:code": "06910",
            "municipality:insee": "06900"}
    postcode = factories.PostCodeFactory(code='06910',
                                         municipality__insee='06900')
    housenumber = factories.HouseNumberFactory(parent__laposte='00067358',
                                               number='5', ordinal='')
    process_row(data)
    assert models.HouseNumber.select().count() == 1
    housenumber = models.HouseNumber.first()
    assert housenumber.laposte == '060012223P'
    assert housenumber.postcode == postcode
Example #6
0
def test_cannot_export_wrong_resource():
    pc = factories.PostCodeFactory()
    path = Path(__file__).parent / 'data'
    with pytest.raises(SystemExit):
        resources('toto', path)