diff --git a/crabpy/data/provincies.json b/crabpy/data/provincies.json index d0bc43a..979b5a6 100644 --- a/crabpy/data/provincies.json +++ b/crabpy/data/provincies.json @@ -1,51 +1,51 @@ [ { - "gewest": 2, + "gewest": "2000", "niscode": "10000", "naam": "Antwerpen" }, { - "gewest": 2, + "gewest": "2000", "niscode": "20001", "naam": "Vlaams-Brabant" }, { - "gewest": 2, + "gewest": "2000", "niscode": "30000", "naam": "West-Vlaanderen" }, { - "gewest": 2, + "gewest": "2000", "niscode": "40000", "naam": "Oost-Vlaanderen" }, { - "gewest": 2, + "gewest": "2000", "niscode": "70000", "naam": "Limburg" }, { - "gewest": 3, + "gewest": "3000", "niscode": "20002", "naam": "Waals-Brabant" }, { - "gewest": 3, + "gewest": "3000", "niscode": "50000", "naam": "Henegouwen" }, { - "gewest": 3, + "gewest": "3000", "niscode": "60000", "naam": "Luik" }, { - "gewest": 3, + "gewest": "3000", "niscode": "80000", "naam": "Luxemburg" }, { - "gewest": 3, + "gewest": "3000", "niscode": "90000", "naam": "Namen" } diff --git a/crabpy/gateway/adressenregister.py b/crabpy/gateway/adressenregister.py index cf7158a..c337752 100644 --- a/crabpy/gateway/adressenregister.py +++ b/crabpy/gateway/adressenregister.py @@ -141,7 +141,7 @@ def provincie_from_json_data(data): return Provincie( niscode=data["niscode"], naam=data["naam"], - gewest=data["gewest"], + gewest_niscode=data["gewest"], gateway=self, ) @@ -160,27 +160,30 @@ def provincie_from_json_data(data): def list_gewesten(self): return self.gewesten - def get_gewest_by_id(self, id_): + def get_gewest_by_niscode(self, niscode): """ - Get a `gewest` by id. + Get a `gewest` by niscode. - :param integer id_: The id of a `gewest`. + :param string niscode: The niscode of a `gewest`. :rtype: A :class:`Gewest`. """ for gewest in self.gewesten: - if gewest.id == id_: + if gewest.niscode == niscode: return gewest raise GatewayResourceNotFoundException() - def list_provincies(self, gewest=2): + def list_provincies(self, gewest_niscode="2000"): """ List all `provincies` in a `gewest`. - :param gewest: The :class:`Gewest` for which the \ - `provincies` are wanted. + :param gewest_niscode: The niscode for which the `provincies` are wanted. :rtype: A :class:`list` of :class:`Provincie`. """ - return [provincie for provincie in self.provincies if provincie.gewest == gewest] + return [ + provincie + for provincie in self.provincies + if provincie.gewest_niscode == gewest_niscode + ] def get_provincie_by_id(self, niscode): """ @@ -189,7 +192,7 @@ def get_provincie_by_id(self, niscode): :param str niscode: The niscode of the provincie. :rtype: :class:`Provincie` """ - niscode = str(niscode) + niscode = niscode for provincie in self.provincies: if provincie.niscode == niscode: return provincie @@ -205,14 +208,14 @@ def list_gemeenten_by_provincie(self, provincie): """ if not isinstance(provincie, Provincie): provincie = self.get_provincie_by_id(provincie) - provincie_niscode = str(provincie.niscode) + provincie_niscode = provincie.niscode return [ gemeente for gemeente in self.gemeenten if gemeente.provincie_niscode == provincie_niscode ] - def list_gemeenten(self, gewest=2): + def list_gemeenten(self, gewest_niscode="2000"): """ List all `gemeenten` in a `gewest`. @@ -221,7 +224,7 @@ def list_gemeenten(self, gewest=2): :rtype: A :class:`list` of :class:`Gemeente`. """ # Brussel is a special case, because it has no provinces - if str(gewest) == "1": + if gewest_niscode == "4000": return [ gemeente for gemeente in self.gemeenten @@ -229,8 +232,8 @@ def list_gemeenten(self, gewest=2): ] provincie_niscodes = [ provincie.niscode - for provincie in self.list_provincies(gewest=gewest) - if provincie.gewest == gewest + for provincie in self.list_provincies(gewest_niscode=gewest_niscode) + if provincie.gewest_niscode == gewest_niscode ] return [ gemeente @@ -242,11 +245,11 @@ def get_gemeente_by_niscode(self, niscode): """ Retrieve a `gemeente` by the NIScode. - :param integer niscode: The NIScode of the gemeente. + :param string niscode: The NIScode of the gemeente. :rtype: :class:`Gemeente` """ return next( - (gemeente for gemeente in self.gemeenten if gemeente.niscode == str(niscode)), + (gemeente for gemeente in self.gemeenten if gemeente.niscode == niscode), None, ) @@ -268,12 +271,12 @@ def get_postinfo_by_id(self, postcode): """ Retrieve a `postinfo` by crab id. - :param integer gemeente_id: The crab id of the municipality. + :param integer postcode: The postcode the municipality. :rtype: :class:`Postinfo` """ return Postinfo.from_get_response(self.client.get_postinfo(postcode), self) - def list_deelgemeenten(self, gewest=2): + def list_deelgemeenten(self, gewest_niscode="2000"): """ List all `deelgemeenten` in a `gewest`. @@ -283,8 +286,8 @@ def list_deelgemeenten(self, gewest=2): """ first_niscode_digits = [ provincie.niscode[0] - for provincie in self.list_provincies(gewest=gewest) - if provincie.gewest == gewest or gewest is None + for provincie in self.list_provincies(gewest_niscode=gewest_niscode) + if provincie.gewest_niscode == gewest_niscode or gewest_niscode is None ] return [ deelgemeente @@ -345,7 +348,7 @@ def get_straat_by_id(self, straat_id): """ Retrieve a `straat` by the Id. - :param integer straat_id: The id of the `straat`. + :param string straat_id: The id of the `straat`. :rtype: :class:`Straat` """ return Straat.from_get_response(self.client.get_straatnaam(straat_id), self) @@ -371,7 +374,7 @@ def get_adres_by_id(self, adres_id): """ Retrieve a `adres` by the Id. - :param integer adres_id: The id of the `adres`. + :param string adres_id: The id of the `adres`. :rtype: :class:`Adres` """ return Adres.from_get_response(self.client.get_adres(adres_id), self) @@ -400,7 +403,7 @@ def list_adressen_with_params( :param busnummer: string :param niscode: string :param status: string - :param straatnaamObjectId: integer + :param straatnaamObjectId: string :return: :rtype: Adres """ return [ @@ -497,11 +500,11 @@ def __init__(self, id_, niscode, naam, centroid, bounding_box, gateway=None): @LazyProperty def provincies(self): - return self.gateway.list_provincies(gewest=self.id) + return self.gateway.list_provincies(gewest_niscode=self.niscode) @LazyProperty def gemeenten(self): - return self.gateway.list_gemeenten(self.id) + return self.gateway.list_gemeenten(self.niscode) def __str__(self): if self.naam is not None: @@ -520,11 +523,11 @@ class Provincie(GatewayObject): .. versionadded:: 0.4.0 """ - def __init__(self, niscode, naam, gewest, gateway): + def __init__(self, niscode, naam, gewest_niscode, gateway): super().__init__(gateway) self.niscode = niscode self.naam = naam - self.gewest = gewest + self.gewest_niscode = gewest_niscode @LazyProperty def gemeenten(self): @@ -578,7 +581,7 @@ def provincie(self): @LazyProperty def gewest(self): - return self.gateway.get_gewest_by_id(self.provincie.gewest) + return self.gateway.get_gewest_by_niscode(self.provincie.gewest_niscode) def __str__(self): return f"{self.naam} ({self.niscode})" diff --git a/tests/gateway/test_adressenregister.py b/tests/gateway/test_adressenregister.py index 8886ec6..93d306d 100644 --- a/tests/gateway/test_adressenregister.py +++ b/tests/gateway/test_adressenregister.py @@ -334,7 +334,7 @@ def test_list_gewesten(self, gateway): ] def test_get_gewest_by_id(self, gateway): - res = gateway.get_gewest_by_id(2) + res = gateway.get_gewest_by_niscode("2000") assert isinstance(res, Gewest) assert res.id == 2 assert res.naam == "Vlaams Gewest" @@ -361,7 +361,7 @@ def test_list_gemeenten_by_provincie(self, gateway, client): def test_get_gewest_by_unexisting_id(self, gateway): with pytest.raises(GatewayResourceNotFoundException): - gateway.get_gewest_by_id(5) + gateway.get_gewest_by_niscode("5000") def test_list_gemeenten_default(self, gateway, client): res = gateway.list_gemeenten() @@ -375,10 +375,6 @@ def test_list_gemeenten_default(self, gateway, client): assert "71002" in niscodes def test_get_gemeente_by_niscode(self, gateway, client): - res = gateway.get_gemeente_by_niscode(57096) - assert res.niscode == "57096" - assert res.naam() == "Moeskroen" - assert res.provincie.niscode == "50000" res = gateway.get_gemeente_by_niscode("57096") assert res.niscode == "57096" assert res.naam() == "Moeskroen" @@ -508,7 +504,7 @@ def test_get_gebouw_by_id(self, gateway, client): class TestGewest: def test_gemeenten(self, gateway, client): - vlaanderen = gateway.get_gewest_by_id(2) + vlaanderen = gateway.get_gewest_by_niscode("2000") res = vlaanderen.gemeenten assert len(res) == 300 niscodes = [gemeente.niscode for gemeente in res] @@ -520,7 +516,7 @@ def test_gemeenten(self, gateway, client): assert "71002" in niscodes def test_provincies(self, gateway): - vlaanderen = gateway.get_gewest_by_id(2) + vlaanderen = gateway.get_gewest_by_niscode("2000") provincies = vlaanderen.provincies assert len(provincies) == 5 @@ -572,7 +568,7 @@ def test_gemeente_brussel(self, gateway, client): assert gemeente.provincie_niscode is None def test_gemeenten_brussels_gewest(self, gateway, client): - gemeenten = gateway.list_gemeenten("1") + gemeenten = gateway.list_gemeenten("4000") assert 19 == len(gemeenten) assert "21001" == gemeenten[0].niscode assert "Anderlecht" == gemeenten[0].naam()