diff --git a/src/openforms/contrib/brk/tests/__init__.py b/src/openforms/contrib/brk/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openforms/contrib/brk/tests/base.py b/src/openforms/contrib/brk/tests/base.py new file mode 100644 index 0000000000..38e0bdf6fd --- /dev/null +++ b/src/openforms/contrib/brk/tests/base.py @@ -0,0 +1,47 @@ +import json +from pathlib import Path +from typing import Literal +from unittest.mock import patch + +from zgw_consumers.constants import APITypes, AuthTypes + +from openforms.contrib.brk.models import BRKConfig +from zgw_consumers_ext.tests.factories import ServiceFactory + +TEST_FILES = Path(__file__).parent.resolve() / "files" + +TestFileNames = Literal[ + "basisprofiel_response.json", + "basisprofiel_response_vve.json", + "zoeken_response.json", +] + + +def load_json_mock(name: TestFileNames): + with (TEST_FILES / name).open("r") as f: + return json.load(f) + + +BRK_SERVICE = ServiceFactory.build( + api_root="http://localhost:8150/", + oas="http://localhost:8150/", # ignored/unused + api_type=APITypes.orc, + auth_type=AuthTypes.api_key, + header_key="apikey", + header_value="l7xx1f2691f2520d487b902f4e0b57a0b197", +) + + +class BRKTestMixin: + + api_root = BRK_SERVICE.api_root + + def setUp(self): + super().setUp() + + patcher = patch( + "openforms.contrib.brk.client.BRKConfig.get_solo", + return_value=BRKConfig(service=BRK_SERVICE), + ) + self.config_mock = patcher.start() + self.addCleanup(patcher.stop) diff --git a/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKCadastralClientTests/BRKCadastralClientTests.test_client.yaml b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKCadastralClientTests/BRKCadastralClientTests.test_client.yaml new file mode 100644 index 0000000000..905eb2bd12 --- /dev/null +++ b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKCadastralClientTests/BRKCadastralClientTests.test_client.yaml @@ -0,0 +1,121 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken?postcode=1234AA&huisnummer=123 + response: + body: + string: '{"_links": {"self": {"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}}, "_embedded": {"kadastraalOnroerendeZaken": + [{"identificatie": "cadastral_id", "domein": "string", "indicatieVervallen": + true, "begrenzingPerceel": {"type": "Polygon", "coordinates": [[[0, 0], [0, + 0], [0, 0], [0, 0]]]}, "perceelnummerRotatie": 999, "plaatscoordinaten": {"type": + "Point", "coordinates": [0, 0]}, "koopsom": {"koopsom": 0, "koopjaar": 0, + "indicatieMetMeerObjectenVerkregen": true}, "toelichtingBewaarder": "string", + "type": "appartementsrecht", "aardCultuurBebouwd": {"code": "string", "waarde": + "string"}, "aardCultuurOnbebouwd": {"code": "string", "waarde": "string"}, + "kadastraleAanduiding": "string", "kadastraleGrootte": {"soortGrootte": {"code": + "string", "waarde": "string"}, "waarde": 0}, "perceelnummerVerschuiving": + {"deltax": 0, "deltay": 0}, "adressen": [{"straat": "Laan van de landinrichtingscommissie + Duiven-Westervoort", "huisnummer": 1, "huisletter": "A", "huisnummertoevoeging": + "bis", "postcode": "6922KZ", "woonplaats": "Duiven", "nummeraanduidingIdentificatie": + "1234207890123456", "adresregel1": "Ln vd l D-Westervoort 1A-bis", "adresregel2": + "6922KZ Duiven", "adresregel3": "Selangor", "land": {"code": "string", "waarde": + "string"}, "koppelingswijze": {"code": "string", "waarde": "string"}, "adresseerbaarObjectIdentificatie": + "string"}], "gesplitstZakelijkRecht": "beklemrechthouder", "zakelijkGerechtigdeIdentificaties": + ["string"], "privaatrechtelijkeBeperkingIdentificaties": ["string"], "hypotheekIdentificaties": + ["string"], "beslagIdentificaties": ["string"], "isOvergegaanIn": {"aard": + {"code": "string", "waarde": "string"}, "kadastraalOnroerendeZaken": [{"identificatie": + "string"}]}, "isOntstaanUit": {"aard": {"code": "string", "waarde": "string"}, + "kadastraalOnroerendeZaken": [{"identificatie": "string"}]}, "bijbehorendeGrondpercelen": + [{"identificatie": "string"}], "bijbehorendeAppartementsrechten": [{"identificatie": + "string", "volgnummer": 0, "indicatieSluimerend": true}], "isVermeldInStukdeelIdentificaties": + ["string"], "stukIdentificaties": ["string"], "indicatieSluimerend": true, + "_links": {"self": {"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}, "zakelijkGerechtigden": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "privaatrechtelijkeBeperkingen": [{"href": + "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "hypotheken": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "isOntstaanUit": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "isOvergegaanIn": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "beslagen": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "stukken": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "stukdelen": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "adressen": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "adresseerbareObjecten": [{"href": + "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "bijbehorendeGrondpercelen": [{"href": + "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "bijbehorendeAppartementsrechten": + [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}]}, "_embedded": {"zakelijkGerechtigden": + [{"identificatie": "string", "type": "beklemrechthouder", "aanvangsdatum": + "2023-11-29", "erfpachtCanon": {"soortErfpachtCanon": {"code": "string", "waarde": + "string"}, "jaarlijksBedrag": {"som": 0, "valuta": {"code": "string", "waarde": + "string"}}, "betrefMeerOnroerendeZaken": true, "einddatumAfkoop": "2023-11-29", + "indicatieOudeOnroerendeZaakBetrokken": true, "isGebaseerdOpStukdeelIdentificatie": + "string", "isVermeldInStukdeelIdentificaties": ["string"], "stukIdentificaties": + ["string"]}, "tenaamstelling": {"aandeel": {"noemer": 2, "teller": 1}, "burgerlijkeStaatTenTijdeVanVerkrijging": + {"code": "string", "waarde": "string"}, "verkregenNamensSamenwerkingsverband": + {"code": "string", "waarde": "string"}, "aantekeningen": [{"aard": {"code": + "string", "waarde": "string"}, "omschrijving": "string", "identificatie": + "string", "domein": "string", "einddatum": "2023-11-29", "einddatumRecht": + "2023-11-29", "stukIdentificaties": ["string"], "isGebaseerdOpStukdeelIdentificatie": + "string", "isVermeldInStukdeelIdentificaties": ["string"]}], "gezamenlijkAandeel": + {"noemer": 2, "teller": 1}, "betrokkenPartner": {"identificatie": "string", + "omschrijving": "string", "type": "ingeschreven_natuurlijk_persoon"}, "betrokkenSamenwerkingsverband": + {"identificatie": "string", "omschrijving": "string", "type": "ingeschreven_niet_natuurlijk_persoon"}, + "betrokkenGorzenEnAanwassen": {"identificatie": "string", "omschrijving": + "string", "type": "ingeschreven_niet_natuurlijk_persoon"}, "isGebaseerdOpStukdeelIdentificaties": + ["string"], "isVermeldInStukdeelIdentificaties": ["string"], "stukIdentificaties": + ["string"]}, "zakelijkRecht": {"stukIdentificaties": ["string"], "isGebaseerdOpStukdeelIdentificaties": + ["string"], "isVermeldInStukdeelIdentificaties": ["string"]}, "persoon": {"identificatie": + "string", "omschrijving": "string", "type": "ingeschreven_natuurlijk_persoon"}, + "_links": {"self": {"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}, "persoon": {"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}, "betrokkenPartner": {"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}, "betrokkenSamenwerkingsverband": {"href": + "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}, "betrokkenGorzenEnAanwassen": {"href": + "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}, "stukken": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "stukdelen": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}]}}], "privaatrechtelijkeBeperkingen": + [{"aard": {"code": "string", "waarde": "string"}, "omschrijving": "string", + "identificatie": "string", "domein": "string", "einddatum": "2023-11-29", + "einddatumRecht": "2023-11-29", "stukIdentificaties": ["string"], "isGebaseerdOpStukdeelIdentificatie": + "string", "isVermeldInStukdeelIdentificaties": ["string"], "_links": {"self": + {"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}, "stukken": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}], "stukdelen": [{"href": "https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}", + "templated": true, "title": "string"}]}}]}}]}}' + headers: + Content-Length: + - '8344' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 05 Dec 2023 15:59:42 GMT + Server: + - Python/3.11 aiohttp/3.9.1 + access-control-allow-methods: + - GET,HEAD,POST,PUT,PATCH,DELETE + access-control-allow-origin: + - '*' + status: + code: 200 + message: OK +version: 1 diff --git a/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKCadastralClientTests/BRKCadastralClientTests.test_client_404.yaml b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKCadastralClientTests/BRKCadastralClientTests.test_client_404.yaml new file mode 100644 index 0000000000..3185c97977 --- /dev/null +++ b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKCadastralClientTests/BRKCadastralClientTests.test_client_404.yaml @@ -0,0 +1,34 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken?postcode=dummy&huisnummer=dummy + response: + body: + string: '{"detail":"Not Found"}' + headers: + content-length: + - '22' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 16:09:34 GMT + server: + - uvicorn + status: + code: 404 + message: Not Found +version: 1 diff --git a/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKTitleholdersClientTests/BRKTitleholdersClientTests.test_client.yaml b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKTitleholdersClientTests/BRKTitleholdersClientTests.test_client.yaml new file mode 100644 index 0000000000..fc7a820238 --- /dev/null +++ b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKTitleholdersClientTests/BRKTitleholdersClientTests.test_client.yaml @@ -0,0 +1,34 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken/cadastral_id/zakelijkgerechtigden + response: + body: + string: '{"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsing":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsingInclusiefZakelijkGerechtigden":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}},"_embedded":{"zakelijkGerechtigden":[{"identificatie":"string","type":"beklemrechthouder","aanvangsdatum":"2023-11-29","erfpachtCanon":{"soortErfpachtCanon":{"code":"string","waarde":"string"},"jaarlijksBedrag":{"som":0,"valuta":{"code":"string","waarde":"string"}},"betrefMeerOnroerendeZaken":true,"einddatumAfkoop":"2023-11-29","indicatieOudeOnroerendeZaakBetrokken":true,"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"tenaamstelling":{"aandeel":{"noemer":2,"teller":1},"burgerlijkeStaatTenTijdeVanVerkrijging":{"code":"string","waarde":"string"},"verkregenNamensSamenwerkingsverband":{"code":"string","waarde":"string"},"aantekeningen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"]}],"gezamenlijkAandeel":{"noemer":2,"teller":1},"betrokkenPartner":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"betrokkenSamenwerkingsverband":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"betrokkenGorzenEnAanwassen":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"zakelijkRecht":{"stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"]},"persoon":{"identificatie":"123456789","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"persoon":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenPartner":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenSamenwerkingsverband":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenGorzenEnAanwassen":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}]},"gesplitstZakelijkRecht":"string"}' + headers: + content-length: + - '3513' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 16:29:54 GMT + server: + - uvicorn + status: + code: 200 + message: OK +version: 1 diff --git a/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKTitleholdersClientTests/BRKTitleholdersClientTests.test_client_404.yaml b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKTitleholdersClientTests/BRKTitleholdersClientTests.test_client_404.yaml new file mode 100644 index 0000000000..16056eb9e6 --- /dev/null +++ b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKTitleholdersClientTests/BRKTitleholdersClientTests.test_client_404.yaml @@ -0,0 +1,34 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken/dummy/zakelijkgerechtigden + response: + body: + string: '{"detail":"Not Found"}' + headers: + content-length: + - '22' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 16:30:50 GMT + server: + - uvicorn + status: + code: 404 + message: Not Found +version: 1 diff --git a/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKValidatorTestCase/BRKValidatorTestCase.test_brk_validator.yaml b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKValidatorTestCase/BRKValidatorTestCase.test_brk_validator.yaml new file mode 100644 index 0000000000..1d98710fd7 --- /dev/null +++ b/src/openforms/contrib/brk/tests/files/vcr_cassettes/BRKValidatorTestCase/BRKValidatorTestCase.test_brk_validator.yaml @@ -0,0 +1,232 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken?postcode=wrong&huisnummer=wrong + response: + body: + string: '{"detail":"Not Found"}' + headers: + content-length: + - '22' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 17:40:19 GMT + server: + - uvicorn + status: + code: 404 + message: Not Found +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken?postcode=1234AA&huisnummer=123 + response: + body: + string: '{"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}},"_embedded":{"kadastraalOnroerendeZaken":[{"identificatie":"cadastral_id","domein":"string","indicatieVervallen":true,"begrenzingPerceel":{"type":"Polygon","coordinates":[[[0,0],[0,0],[0,0],[0,0]]]},"perceelnummerRotatie":999,"plaatscoordinaten":{"type":"Point","coordinates":[0,0]},"koopsom":{"koopsom":0,"koopjaar":0,"indicatieMetMeerObjectenVerkregen":true},"toelichtingBewaarder":"string","type":"appartementsrecht","aardCultuurBebouwd":{"code":"string","waarde":"string"},"aardCultuurOnbebouwd":{"code":"string","waarde":"string"},"kadastraleAanduiding":"string","kadastraleGrootte":{"soortGrootte":{"code":"string","waarde":"string"},"waarde":0},"perceelnummerVerschuiving":{"deltax":0,"deltay":0},"adressen":[{"straat":"Laan + van de landinrichtingscommissie Duiven-Westervoort","huisnummer":1,"huisletter":"A","huisnummertoevoeging":"bis","postcode":"6922KZ","woonplaats":"Duiven","nummeraanduidingIdentificatie":"1234207890123456","adresregel1":"Ln + vd l D-Westervoort 1A-bis","adresregel2":"6922KZ Duiven","adresregel3":"Selangor","land":{"code":"string","waarde":"string"},"koppelingswijze":{"code":"string","waarde":"string"},"adresseerbaarObjectIdentificatie":"string"}],"gesplitstZakelijkRecht":"beklemrechthouder","zakelijkGerechtigdeIdentificaties":["string"],"privaatrechtelijkeBeperkingIdentificaties":["string"],"hypotheekIdentificaties":["string"],"beslagIdentificaties":["string"],"isOvergegaanIn":{"aard":{"code":"string","waarde":"string"},"kadastraalOnroerendeZaken":[{"identificatie":"string"}]},"isOntstaanUit":{"aard":{"code":"string","waarde":"string"},"kadastraalOnroerendeZaken":[{"identificatie":"string"}]},"bijbehorendeGrondpercelen":[{"identificatie":"string"}],"bijbehorendeAppartementsrechten":[{"identificatie":"string","volgnummer":0,"indicatieSluimerend":true}],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"],"indicatieSluimerend":true,"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"zakelijkGerechtigden":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"privaatrechtelijkeBeperkingen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"hypotheken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"isOntstaanUit":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"isOvergegaanIn":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"beslagen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"adressen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"adresseerbareObjecten":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"bijbehorendeGrondpercelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"bijbehorendeAppartementsrechten":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]},"_embedded":{"zakelijkGerechtigden":[{"identificatie":"string","type":"beklemrechthouder","aanvangsdatum":"2023-11-29","erfpachtCanon":{"soortErfpachtCanon":{"code":"string","waarde":"string"},"jaarlijksBedrag":{"som":0,"valuta":{"code":"string","waarde":"string"}},"betrefMeerOnroerendeZaken":true,"einddatumAfkoop":"2023-11-29","indicatieOudeOnroerendeZaakBetrokken":true,"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"tenaamstelling":{"aandeel":{"noemer":2,"teller":1},"burgerlijkeStaatTenTijdeVanVerkrijging":{"code":"string","waarde":"string"},"verkregenNamensSamenwerkingsverband":{"code":"string","waarde":"string"},"aantekeningen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"]}],"gezamenlijkAandeel":{"noemer":2,"teller":1},"betrokkenPartner":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"betrokkenSamenwerkingsverband":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"betrokkenGorzenEnAanwassen":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"zakelijkRecht":{"stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"]},"persoon":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"persoon":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenPartner":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenSamenwerkingsverband":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenGorzenEnAanwassen":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}],"privaatrechtelijkeBeperkingen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}]}}]}}' + headers: + content-length: + - '7892' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 17:40:19 GMT + server: + - uvicorn + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken/cadastral_id/zakelijkgerechtigden + response: + body: + string: '{"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsing":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsingInclusiefZakelijkGerechtigden":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}},"_embedded":{"zakelijkGerechtigden":[{"identificatie":"string","type":"beklemrechthouder","aanvangsdatum":"2023-11-29","erfpachtCanon":{"soortErfpachtCanon":{"code":"string","waarde":"string"},"jaarlijksBedrag":{"som":0,"valuta":{"code":"string","waarde":"string"}},"betrefMeerOnroerendeZaken":true,"einddatumAfkoop":"2023-11-29","indicatieOudeOnroerendeZaakBetrokken":true,"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"tenaamstelling":{"aandeel":{"noemer":2,"teller":1},"burgerlijkeStaatTenTijdeVanVerkrijging":{"code":"string","waarde":"string"},"verkregenNamensSamenwerkingsverband":{"code":"string","waarde":"string"},"aantekeningen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"]}],"gezamenlijkAandeel":{"noemer":2,"teller":1},"betrokkenPartner":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"betrokkenSamenwerkingsverband":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"betrokkenGorzenEnAanwassen":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"zakelijkRecht":{"stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"]},"persoon":{"identificatie":"123456789","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"persoon":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenPartner":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenSamenwerkingsverband":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenGorzenEnAanwassen":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}]},"gesplitstZakelijkRecht":"string"}' + headers: + content-length: + - '3513' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 17:40:19 GMT + server: + - uvicorn + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken?postcode=1234AA&huisnummer=123 + response: + body: + string: '{"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}},"_embedded":{"kadastraalOnroerendeZaken":[{"identificatie":"cadastral_id","domein":"string","indicatieVervallen":true,"begrenzingPerceel":{"type":"Polygon","coordinates":[[[0,0],[0,0],[0,0],[0,0]]]},"perceelnummerRotatie":999,"plaatscoordinaten":{"type":"Point","coordinates":[0,0]},"koopsom":{"koopsom":0,"koopjaar":0,"indicatieMetMeerObjectenVerkregen":true},"toelichtingBewaarder":"string","type":"appartementsrecht","aardCultuurBebouwd":{"code":"string","waarde":"string"},"aardCultuurOnbebouwd":{"code":"string","waarde":"string"},"kadastraleAanduiding":"string","kadastraleGrootte":{"soortGrootte":{"code":"string","waarde":"string"},"waarde":0},"perceelnummerVerschuiving":{"deltax":0,"deltay":0},"adressen":[{"straat":"Laan + van de landinrichtingscommissie Duiven-Westervoort","huisnummer":1,"huisletter":"A","huisnummertoevoeging":"bis","postcode":"6922KZ","woonplaats":"Duiven","nummeraanduidingIdentificatie":"1234207890123456","adresregel1":"Ln + vd l D-Westervoort 1A-bis","adresregel2":"6922KZ Duiven","adresregel3":"Selangor","land":{"code":"string","waarde":"string"},"koppelingswijze":{"code":"string","waarde":"string"},"adresseerbaarObjectIdentificatie":"string"}],"gesplitstZakelijkRecht":"beklemrechthouder","zakelijkGerechtigdeIdentificaties":["string"],"privaatrechtelijkeBeperkingIdentificaties":["string"],"hypotheekIdentificaties":["string"],"beslagIdentificaties":["string"],"isOvergegaanIn":{"aard":{"code":"string","waarde":"string"},"kadastraalOnroerendeZaken":[{"identificatie":"string"}]},"isOntstaanUit":{"aard":{"code":"string","waarde":"string"},"kadastraalOnroerendeZaken":[{"identificatie":"string"}]},"bijbehorendeGrondpercelen":[{"identificatie":"string"}],"bijbehorendeAppartementsrechten":[{"identificatie":"string","volgnummer":0,"indicatieSluimerend":true}],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"],"indicatieSluimerend":true,"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"zakelijkGerechtigden":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"privaatrechtelijkeBeperkingen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"hypotheken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"isOntstaanUit":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"isOvergegaanIn":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"beslagen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"adressen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"adresseerbareObjecten":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"bijbehorendeGrondpercelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"bijbehorendeAppartementsrechten":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]},"_embedded":{"zakelijkGerechtigden":[{"identificatie":"string","type":"beklemrechthouder","aanvangsdatum":"2023-11-29","erfpachtCanon":{"soortErfpachtCanon":{"code":"string","waarde":"string"},"jaarlijksBedrag":{"som":0,"valuta":{"code":"string","waarde":"string"}},"betrefMeerOnroerendeZaken":true,"einddatumAfkoop":"2023-11-29","indicatieOudeOnroerendeZaakBetrokken":true,"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"tenaamstelling":{"aandeel":{"noemer":2,"teller":1},"burgerlijkeStaatTenTijdeVanVerkrijging":{"code":"string","waarde":"string"},"verkregenNamensSamenwerkingsverband":{"code":"string","waarde":"string"},"aantekeningen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"]}],"gezamenlijkAandeel":{"noemer":2,"teller":1},"betrokkenPartner":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"betrokkenSamenwerkingsverband":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"betrokkenGorzenEnAanwassen":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"zakelijkRecht":{"stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"]},"persoon":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"persoon":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenPartner":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenSamenwerkingsverband":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenGorzenEnAanwassen":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}],"privaatrechtelijkeBeperkingen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}]}}]}}' + headers: + content-length: + - '7892' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 17:40:19 GMT + server: + - uvicorn + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken/cadastral_id/zakelijkgerechtigden + response: + body: + string: '{"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsing":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsingInclusiefZakelijkGerechtigden":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}},"_embedded":{"zakelijkGerechtigden":[{"identificatie":"string","type":"beklemrechthouder","aanvangsdatum":"2023-11-29","erfpachtCanon":{"soortErfpachtCanon":{"code":"string","waarde":"string"},"jaarlijksBedrag":{"som":0,"valuta":{"code":"string","waarde":"string"}},"betrefMeerOnroerendeZaken":true,"einddatumAfkoop":"2023-11-29","indicatieOudeOnroerendeZaakBetrokken":true,"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"tenaamstelling":{"aandeel":{"noemer":2,"teller":1},"burgerlijkeStaatTenTijdeVanVerkrijging":{"code":"string","waarde":"string"},"verkregenNamensSamenwerkingsverband":{"code":"string","waarde":"string"},"aantekeningen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"]}],"gezamenlijkAandeel":{"noemer":2,"teller":1},"betrokkenPartner":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"betrokkenSamenwerkingsverband":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"betrokkenGorzenEnAanwassen":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"zakelijkRecht":{"stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"]},"persoon":{"identificatie":"123456789","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"persoon":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenPartner":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenSamenwerkingsverband":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenGorzenEnAanwassen":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}]},"gesplitstZakelijkRecht":"string"}' + headers: + content-length: + - '3513' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 17:40:19 GMT + server: + - uvicorn + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken?postcode=1234AA&huisnummer=123 + response: + body: + string: '{"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}},"_embedded":{"kadastraalOnroerendeZaken":[{"identificatie":"cadastral_id","domein":"string","indicatieVervallen":true,"begrenzingPerceel":{"type":"Polygon","coordinates":[[[0,0],[0,0],[0,0],[0,0]]]},"perceelnummerRotatie":999,"plaatscoordinaten":{"type":"Point","coordinates":[0,0]},"koopsom":{"koopsom":0,"koopjaar":0,"indicatieMetMeerObjectenVerkregen":true},"toelichtingBewaarder":"string","type":"appartementsrecht","aardCultuurBebouwd":{"code":"string","waarde":"string"},"aardCultuurOnbebouwd":{"code":"string","waarde":"string"},"kadastraleAanduiding":"string","kadastraleGrootte":{"soortGrootte":{"code":"string","waarde":"string"},"waarde":0},"perceelnummerVerschuiving":{"deltax":0,"deltay":0},"adressen":[{"straat":"Laan + van de landinrichtingscommissie Duiven-Westervoort","huisnummer":1,"huisletter":"A","huisnummertoevoeging":"bis","postcode":"6922KZ","woonplaats":"Duiven","nummeraanduidingIdentificatie":"1234207890123456","adresregel1":"Ln + vd l D-Westervoort 1A-bis","adresregel2":"6922KZ Duiven","adresregel3":"Selangor","land":{"code":"string","waarde":"string"},"koppelingswijze":{"code":"string","waarde":"string"},"adresseerbaarObjectIdentificatie":"string"}],"gesplitstZakelijkRecht":"beklemrechthouder","zakelijkGerechtigdeIdentificaties":["string"],"privaatrechtelijkeBeperkingIdentificaties":["string"],"hypotheekIdentificaties":["string"],"beslagIdentificaties":["string"],"isOvergegaanIn":{"aard":{"code":"string","waarde":"string"},"kadastraalOnroerendeZaken":[{"identificatie":"string"}]},"isOntstaanUit":{"aard":{"code":"string","waarde":"string"},"kadastraalOnroerendeZaken":[{"identificatie":"string"}]},"bijbehorendeGrondpercelen":[{"identificatie":"string"}],"bijbehorendeAppartementsrechten":[{"identificatie":"string","volgnummer":0,"indicatieSluimerend":true}],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"],"indicatieSluimerend":true,"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"zakelijkGerechtigden":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"privaatrechtelijkeBeperkingen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"hypotheken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"isOntstaanUit":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"isOvergegaanIn":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"beslagen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"adressen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"adresseerbareObjecten":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"bijbehorendeGrondpercelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"bijbehorendeAppartementsrechten":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]},"_embedded":{"zakelijkGerechtigden":[{"identificatie":"string","type":"beklemrechthouder","aanvangsdatum":"2023-11-29","erfpachtCanon":{"soortErfpachtCanon":{"code":"string","waarde":"string"},"jaarlijksBedrag":{"som":0,"valuta":{"code":"string","waarde":"string"}},"betrefMeerOnroerendeZaken":true,"einddatumAfkoop":"2023-11-29","indicatieOudeOnroerendeZaakBetrokken":true,"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"tenaamstelling":{"aandeel":{"noemer":2,"teller":1},"burgerlijkeStaatTenTijdeVanVerkrijging":{"code":"string","waarde":"string"},"verkregenNamensSamenwerkingsverband":{"code":"string","waarde":"string"},"aantekeningen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"]}],"gezamenlijkAandeel":{"noemer":2,"teller":1},"betrokkenPartner":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"betrokkenSamenwerkingsverband":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"betrokkenGorzenEnAanwassen":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"zakelijkRecht":{"stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"]},"persoon":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"persoon":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenPartner":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenSamenwerkingsverband":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenGorzenEnAanwassen":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}],"privaatrechtelijkeBeperkingen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}]}}]}}' + headers: + content-length: + - '7892' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 17:40:19 GMT + server: + - uvicorn + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/hal+json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Type: + - application/hal+json + User-Agent: + - python-requests/2.31.0 + apikey: + - l7xx1f2691f2520d487b902f4e0b57a0b197 + method: GET + uri: http://localhost:8150/kadastraalonroerendezaken/cadastral_id/zakelijkgerechtigden + response: + body: + string: '{"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsing":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"kadastraalOnroerendeZakenUitSplitsingInclusiefZakelijkGerechtigden":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}},"_embedded":{"zakelijkGerechtigden":[{"identificatie":"string","type":"beklemrechthouder","aanvangsdatum":"2023-11-29","erfpachtCanon":{"soortErfpachtCanon":{"code":"string","waarde":"string"},"jaarlijksBedrag":{"som":0,"valuta":{"code":"string","waarde":"string"}},"betrefMeerOnroerendeZaken":true,"einddatumAfkoop":"2023-11-29","indicatieOudeOnroerendeZaakBetrokken":true,"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"tenaamstelling":{"aandeel":{"noemer":2,"teller":1},"burgerlijkeStaatTenTijdeVanVerkrijging":{"code":"string","waarde":"string"},"verkregenNamensSamenwerkingsverband":{"code":"string","waarde":"string"},"aantekeningen":[{"aard":{"code":"string","waarde":"string"},"omschrijving":"string","identificatie":"string","domein":"string","einddatum":"2023-11-29","einddatumRecht":"2023-11-29","stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificatie":"string","isVermeldInStukdeelIdentificaties":["string"]}],"gezamenlijkAandeel":{"noemer":2,"teller":1},"betrokkenPartner":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"betrokkenSamenwerkingsverband":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"betrokkenGorzenEnAanwassen":{"identificatie":"string","omschrijving":"string","type":"ingeschreven_niet_natuurlijk_persoon"},"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"],"stukIdentificaties":["string"]},"zakelijkRecht":{"stukIdentificaties":["string"],"isGebaseerdOpStukdeelIdentificaties":["string"],"isVermeldInStukdeelIdentificaties":["string"]},"persoon":{"identificatie":"123456789","omschrijving":"string","type":"ingeschreven_natuurlijk_persoon"},"_links":{"self":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"persoon":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenPartner":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenSamenwerkingsverband":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"betrokkenGorzenEnAanwassen":{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"},"stukken":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}],"stukdelen":[{"href":"https://datapunt.voorbeeldgemeente.nl/api/v{major-versie}/resourcename/{resource-identificatie}","templated":true,"title":"string"}]}}]},"gesplitstZakelijkRecht":"string"}' + headers: + content-length: + - '3513' + content-type: + - application/json + date: + - Tue, 05 Dec 2023 17:40:19 GMT + server: + - uvicorn + status: + code: 200 + message: OK +version: 1 diff --git a/src/openforms/contrib/brk/tests/test_client.py b/src/openforms/contrib/brk/tests/test_client.py new file mode 100644 index 0000000000..98817ebea1 --- /dev/null +++ b/src/openforms/contrib/brk/tests/test_client.py @@ -0,0 +1,74 @@ +from django.test import SimpleTestCase + +import requests +import requests_mock +from privates.test import temp_private_root + +from openforms.utils.tests.vcr import OFVCRMixin + +from ..client import get_client +from .base import TEST_FILES, BRKTestMixin + + +@temp_private_root() +class BRKCadastralClientTests(OFVCRMixin, BRKTestMixin, SimpleTestCase): + VCR_TEST_FILES = TEST_FILES + + def test_client(self): + + with get_client() as client: + res = client.get_cadastrals_by_address( + {"postcode": "1234AA", "huisnummer": "123"} + ) + + self.assertEqual( + res["_embedded"]["kadastraalOnroerendeZaken"][0]["identificatie"], + "cadastral_id", + ) + + def test_client_404(self): + with get_client() as client: + with self.assertRaises(requests.HTTPError): + client.get_cadastrals_by_address( + {"postcode": "dummy", "huisnummer": "dummy"} + ) + + @requests_mock.Mocker() + def test_client_500(self, m): + m.get(requests_mock.ANY, status_code=500) + + with get_client() as client: + with self.assertRaises(requests.RequestException): + client.get_cadastrals_by_address( + {"postcode": "1234AA", "huisnummer": "123"} + ) + + +@temp_private_root() +class BRKTitleholdersClientTests(OFVCRMixin, BRKTestMixin, SimpleTestCase): + VCR_TEST_FILES = TEST_FILES + + def test_client(self): + + with get_client() as client: + res = client.get_cadastral_titleholders_by_cadastral_id("cadastral_id") + + bsns = [ + a["persoon"]["identificatie"] + for a in res["_embedded"]["zakelijkGerechtigden"] + ] + + self.assertEqual(bsns, ["123456789"]) + + def test_client_404(self): + with get_client() as client: + with self.assertRaises(requests.HTTPError): + client.get_cadastral_titleholders_by_cadastral_id("dummy") + + @requests_mock.Mocker() + def test_client_500(self, m): + m.get(requests_mock.ANY, status_code=500) + + with get_client() as client: + with self.assertRaises(requests.RequestException): + client.get_cadastrals_by_address("cadastral_id") diff --git a/src/openforms/contrib/brk/tests/test_validators.py b/src/openforms/contrib/brk/tests/test_validators.py new file mode 100644 index 0000000000..f41ebe5635 --- /dev/null +++ b/src/openforms/contrib/brk/tests/test_validators.py @@ -0,0 +1,83 @@ +from django.contrib.auth.hashers import make_password as get_salted_hash +from django.core.exceptions import ValidationError +from django.test import TestCase +from django.utils.translation import gettext as _ + +from privates.test import temp_private_root + +from openforms.authentication.constants import AuthAttribute +from openforms.submissions.tests.factories import SubmissionFactory +from openforms.utils.tests.vcr import OFVCRMixin + +from ..validators import BRKZaakgerechtigdeValidator +from .base import TEST_FILES, BRKTestMixin + + +@temp_private_root() +class BRKValidatorTestCase(OFVCRMixin, BRKTestMixin, TestCase): + VCR_TEST_FILES = TEST_FILES + + def test_brk_validator(self): + + validator = BRKZaakgerechtigdeValidator() + + submission_no_bsn = SubmissionFactory.create( + form__generate_minimal_setup=True, + form__authentication_backends=["demo"], + auth_info__plugin="demo", + auth_info__attribute=AuthAttribute.kvk, + ) + + with self.assertRaisesMessage( + ValidationError, _("%(type)s does not exist.") % {"type": _("Owner")} + ): + validator( + {"postcode": "not_relevant", "houseNumber": "same"}, submission_no_bsn + ) + + submission_not_hashed = SubmissionFactory.create( + form__generate_minimal_setup=True, + form__authentication_backends=["demo"], + form__formstep__form_definition__login_required=False, + auth_info__attribute_hashed=False, + auth_info__attribute=AuthAttribute.bsn, + auth_info__value="123456789", + auth_info__plugin="demo", + ) + + submission_hashed = SubmissionFactory.create( + form__generate_minimal_setup=True, + form__authentication_backends=["demo"], + form__formstep__form_definition__login_required=False, + auth_info__attribute_hashed=True, + auth_info__attribute=AuthAttribute.bsn, + auth_info__value=get_salted_hash("123456789"), + auth_info__plugin="demo", + ) + + submission_wrong_bsn = SubmissionFactory.create( + form__generate_minimal_setup=True, + form__authentication_backends=["demo"], + form__formstep__form_definition__login_required=False, + auth_info__attribute_hashed=False, + auth_info__attribute=AuthAttribute.bsn, + auth_info__value="wrong_bsn", + auth_info__plugin="demo", + ) + + with self.assertRaisesMessage( + ValidationError, _("%(type)s does not exist.") % {"type": _("Owner")} + ): + validator( + {"postcode": "wrong", "houseNumber": "wrong"}, submission_not_hashed + ) + + validator({"postcode": "1234AA", "houseNumber": "123"}, submission_not_hashed) + validator({"postcode": "1234AA", "houseNumber": "123"}, submission_hashed) + + with self.assertRaisesMessage( + ValidationError, _("%(type)s does not exist.") % {"type": _("Owner")} + ): + validator( + {"postcode": "1234AA", "houseNumber": "123"}, submission_wrong_bsn + ) diff --git a/src/openforms/contrib/brk/validators.py b/src/openforms/contrib/brk/validators.py index cc456d3709..48f02e5f3b 100644 --- a/src/openforms/contrib/brk/validators.py +++ b/src/openforms/contrib/brk/validators.py @@ -35,25 +35,29 @@ class BRKZaakgerechtigdeValidator: def __call__(self, value: AddressValue, submission: Submission) -> bool: + validation_error = ValidationError( + self.error_messages["not_found"], + params={"type": _("Owner")}, + ) + try: client = get_client() - except NoServiceConfigured: - raise ValidationError( - self.error_messages["not_found"], - params={"type": _("Owner")}, - ) + except NoServiceConfigured as e: + raise validation_error from e address_query: SearchParams = { "postcode": value["postcode"], - "huisnummer": value["housenumber"], - "huisletter": value["houseletter"], - "huisnummertoevoeging": value["housenumberaddition"], + "huisnummer": value["houseNumber"], } + if "houseLetter" in value: + address_query["huisletter"] = value["houseLetter"] + if "houseNumberAddition" in value: + address_query["huisnummertoevoeging"] = value["houseNumberAddition"] # We assume submission has auth_info available, should we verify that this validator is used # on a step that requires login? if submission.auth_info.attribute != AuthAttribute.bsn: - raise ValidationError() + raise validation_error try: with client: @@ -61,7 +65,7 @@ def __call__(self, value: AddressValue, submission: Submission) -> bool: kadastraals = cadastrals_resp["_embedded"]["kadastraalOnroerendeZaken"] if len(kadastraals) > 1: # The query by address returned more than one cadastral, this shouldn't happen - raise ValidationError() + raise validation_error kadastraal_id = kadastraals[0]["identificatie"] titleholders_resp = client.get_cadastral_titleholders_by_cadastral_id( @@ -81,10 +85,9 @@ def __call__(self, value: AddressValue, submission: Submission) -> bool: is_valid = submission.auth_info.value in bsns if not is_valid: - raise ValidationError() + raise validation_error - except (RequestException, KeyError): - # TODO raise not found? - pass + except (RequestException, KeyError, TypeError) as e: + raise validation_error from e return True diff --git a/src/openforms/formio/components/custom.py b/src/openforms/formio/components/custom.py index 981e9d12e1..d67de4e10c 100644 --- a/src/openforms/formio/components/custom.py +++ b/src/openforms/formio/components/custom.py @@ -183,6 +183,7 @@ def mutate_config_dynamically( for value, label in child_choices ] + @register("address") class Default(BasePlugin):