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
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'
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()
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
def test_cannot_export_wrong_resource(): pc = factories.PostCodeFactory() path = Path(__file__).parent / 'data' with pytest.raises(SystemExit): resources('toto', path)