Skip to content

Commit 604ff6e

Browse files
[#310] Improve migrations and tests
1 parent 4432499 commit 604ff6e

File tree

4 files changed

+98
-24
lines changed

4 files changed

+98
-24
lines changed

src/openklant/components/contactgegevens/migrations/0005_alter_organisatie_adres_nummeraanduiding_id_and_more.py

+12-11
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,18 @@
1313
def _check_records(records, model_name):
1414
total_failed_records = 0
1515
for record in records:
16-
try:
17-
validate_bag_id(record.adres_nummeraanduiding_id)
18-
except ValidationError:
19-
logger.warning(
20-
"%s(pk=%s, uuid=%s) Field: 'adres_nummeraanduiding_id'. Invalid BAG ID: %s",
21-
model_name,
22-
record.pk,
23-
record.uuid,
24-
record.adres_nummeraanduiding_id,
25-
)
26-
total_failed_records += 1
16+
if record.adres_nummeraanduiding_id:
17+
try:
18+
validate_bag_id(record.adres_nummeraanduiding_id)
19+
except ValidationError:
20+
logger.warning(
21+
"%s(pk=%s, uuid=%s) Field: 'adres_nummeraanduiding_id'. Invalid BAG ID: %s",
22+
model_name,
23+
record.pk,
24+
record.uuid,
25+
record.adres_nummeraanduiding_id,
26+
)
27+
total_failed_records += 1
2728
return total_failed_records
2829

2930

src/openklant/components/contactgegevens/tests/test_migrations.py

+30
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,21 @@ def test_ok_migration_organisatie_model(self):
214214
self.assertEqual(records.count(), 1)
215215
self.assertEqual(records[0].adres_nummeraanduiding_id, "1234567890000001")
216216

217+
def test_ok_migration_organisatie_model_empty_value(self):
218+
219+
Organisatie = self.old_app_state.get_model("contactgegevens", "Organisatie")
220+
221+
Organisatie.objects.create(adres_nummeraanduiding_id="")
222+
223+
self._perform_migration()
224+
225+
Organisatie = self.apps.get_model("contactgegevens", "Organisatie")
226+
227+
records = Organisatie.objects.all()
228+
229+
self.assertEqual(records.count(), 1)
230+
self.assertEqual(records[0].adres_nummeraanduiding_id, "")
231+
217232
def test_ko_migration_organisatie_model_wrong_code(self):
218233

219234
Organisatie = self.old_app_state.get_model("contactgegevens", "Organisatie")
@@ -266,6 +281,21 @@ def test_ok_migrate_persoon_model(self):
266281
self.assertEqual(records.count(), 1)
267282
self.assertEqual(records[0].adres_nummeraanduiding_id, "1234567890000001")
268283

284+
def test_ok_migration_persoon_model_empty_value(self):
285+
286+
Persoon = self.old_app_state.get_model("contactgegevens", "Persoon")
287+
288+
Persoon.objects.create(adres_nummeraanduiding_id="", geboortedatum="1980-02-23")
289+
290+
self._perform_migration()
291+
292+
Persoon = self.apps.get_model("contactgegevens", "Persoon")
293+
294+
records = Persoon.objects.all()
295+
296+
self.assertEqual(records.count(), 1)
297+
self.assertEqual(records[0].adres_nummeraanduiding_id, "")
298+
269299
def test_ko_migration_persoon_model_wrong_code(self):
270300

271301
Persoon = self.old_app_state.get_model("contactgegevens", "Persoon")

src/openklant/components/klantinteracties/migrations/0027_alter_betrokkene_bezoekadres_nummeraanduiding_id_and_more.py

+14-13
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,20 @@ def _check_records(records, model_name):
1818
"bezoekadres_nummeraanduiding_id",
1919
"correspondentieadres_nummeraanduiding_id",
2020
):
21-
try:
22-
field_value = getattr(record, field_name, None)
23-
validate_bag_id(field_value)
24-
except ValidationError:
25-
logger.warning(
26-
"%s(pk=%s, uuid=%s) Field: '%s'. Invalid BAG ID: %s",
27-
model_name,
28-
record.pk,
29-
record.uuid,
30-
field_name,
31-
field_value,
32-
)
33-
record_failed = True
21+
field_value = getattr(record, field_name, None)
22+
if field_value:
23+
try:
24+
validate_bag_id(field_value)
25+
except ValidationError:
26+
logger.warning(
27+
"%s(pk=%s, uuid=%s) Field: '%s'. Invalid BAG ID: %s",
28+
model_name,
29+
record.pk,
30+
record.uuid,
31+
field_name,
32+
field_value,
33+
)
34+
record_failed = True
3435

3536
if record_failed:
3637
total_failed_records += 1

src/openklant/components/klantinteracties/tests/test_migrations.py

+42
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,28 @@ def test_ok_migration_betrokkene_model(self):
277277
records[0].correspondentieadres_nummeraanduiding_id, "1234567890000002"
278278
)
279279

280+
def test_ok_migration_betrokkene_model_empty_value(self):
281+
282+
Betrokkene = self.old_app_state.get_model("klantinteracties", "Betrokkene")
283+
Klantcontact = self.old_app_state.get_model("klantinteracties", "Klantcontact")
284+
285+
Betrokkene.objects.create(
286+
partij=None,
287+
klantcontact=Klantcontact.objects.create(vertrouwelijk=False),
288+
initiator=False,
289+
bezoekadres_nummeraanduiding_id="",
290+
correspondentieadres_nummeraanduiding_id="",
291+
)
292+
293+
self._perform_migration()
294+
295+
Betrokkene = self.apps.get_model("klantinteracties", "Betrokkene")
296+
297+
records = Betrokkene.objects.all()
298+
self.assertEqual(records.count(), 1)
299+
self.assertEqual(records[0].bezoekadres_nummeraanduiding_id, "")
300+
self.assertEqual(records[0].correspondentieadres_nummeraanduiding_id, "")
301+
280302
def test_ko_migration_betrokkene_model_wrong_code(self):
281303

282304
Betrokkene = self.old_app_state.get_model("klantinteracties", "Betrokkene")
@@ -348,6 +370,26 @@ def test_ok_migration_partij_model(self):
348370
records[0].correspondentieadres_nummeraanduiding_id, "1234567890000002"
349371
)
350372

373+
def test_ok_migration_partij_model_empty_value(self):
374+
375+
Partij = self.old_app_state.get_model("klantinteracties", "Partij")
376+
377+
Partij.objects.create(
378+
indicatie_actief=True,
379+
bezoekadres_nummeraanduiding_id="",
380+
correspondentieadres_nummeraanduiding_id="",
381+
)
382+
383+
self._perform_migration()
384+
385+
Partij = self.apps.get_model("klantinteracties", "Partij")
386+
387+
records = Partij.objects.all()
388+
389+
self.assertEqual(records.count(), 1)
390+
self.assertEqual(records[0].bezoekadres_nummeraanduiding_id, "")
391+
self.assertEqual(records[0].correspondentieadres_nummeraanduiding_id, "")
392+
351393
def test_ko_migration_partij_model_wrong_code(self):
352394

353395
Partij = self.old_app_state.get_model("klantinteracties", "Partij")

0 commit comments

Comments
 (0)