Skip to content

Commit 205c4eb

Browse files
committed
🐛[#227] fix partijIdentificatie crashing when not provided
1 parent 125bd2c commit 205c4eb

File tree

2 files changed

+68
-1
lines changed

2 files changed

+68
-1
lines changed

src/openklant/components/klantinteracties/api/serializers/partijen.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ def update(self, instance, validated_data):
720720

721721
@transaction.atomic
722722
def create(self, validated_data):
723-
partij_identificatie = validated_data.pop("partij_identificatie")
723+
partij_identificatie = validated_data.pop("partij_identificatie", None)
724724
digitale_adressen = validated_data.pop("digitaaladres_set")
725725
rekeningnummers = validated_data.pop("rekeningnummer_set")
726726

src/openklant/components/klantinteracties/api/tests/test_partijen.py

+67
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import datetime
22

3+
from django.utils.translation import gettext as _
4+
35
from rest_framework import status
46
from vng_api_common.tests import reverse
57

@@ -307,6 +309,71 @@ def test_create_partij(self):
307309
],
308310
)
309311

312+
def test_create_partij_only_required(self):
313+
"""
314+
Test if object is created with only required parameters
315+
316+
Regression Test for #227
317+
"""
318+
list_url = reverse("klantinteracties:partij-list")
319+
320+
response = self.client.post(list_url, {})
321+
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
322+
323+
response_data = response.json()
324+
self.assertEqual(response_data["title"], "Invalid input.")
325+
self.assertEqual(response_data["code"], "invalid")
326+
self.assertEqual(response_data["status"], 400)
327+
self.assertEqual(
328+
response_data["invalidParams"],
329+
[
330+
{
331+
"name": "digitaleAdressen",
332+
"code": "required",
333+
"reason": _("This field is required."),
334+
},
335+
{
336+
"name": "voorkeursDigitaalAdres",
337+
"code": "required",
338+
"reason": _("This field is required."),
339+
},
340+
{
341+
"name": "rekeningnummers",
342+
"code": "required",
343+
"reason": _("This field is required."),
344+
},
345+
{
346+
"name": "voorkeursRekeningnummer",
347+
"code": "required",
348+
"reason": _("This field is required."),
349+
},
350+
{
351+
"name": "soortPartij",
352+
"code": "required",
353+
"reason": _("This field is required."),
354+
},
355+
{
356+
"name": "indicatieActief",
357+
"code": "required",
358+
"reason": _("This field is required."),
359+
},
360+
],
361+
)
362+
363+
digitaal_adres = DigitaalAdresFactory()
364+
365+
data = {
366+
"digitaleAdressen": [{"uuid": str(digitaal_adres.uuid)}],
367+
"voorkeursDigitaalAdres": {"uuid": str(digitaal_adres.uuid)},
368+
"rekeningnummers": [],
369+
"voorkeursRekeningnummer": None,
370+
"soortPartij": "persoon",
371+
"indicatieActief": True,
372+
}
373+
374+
response = self.client.post(list_url, data)
375+
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
376+
310377
def test_create_persoon(self):
311378
list_url = reverse("klantinteracties:partij-list")
312379
data = {

0 commit comments

Comments
 (0)