diff --git a/src/openforms/formio/components/np_family_members/stuf_bg.py b/src/openforms/formio/components/np_family_members/stuf_bg.py index 3117352cc2..51ba4fa708 100644 --- a/src/openforms/formio/components/np_family_members/stuf_bg.py +++ b/src/openforms/formio/components/np_family_members/stuf_bg.py @@ -8,15 +8,15 @@ def get_np_family_members_stuf_bg( include_partners: bool, submission: Submission | None = None, ) -> list[tuple[str, str]]: - values = [] + attributes: list[str] = [] if include_children: - values.append("inp.heeftAlsKinderen") + attributes.append("inp.heeftAlsKinderen") if include_partners: - values.append("inp.heeftAlsEchtgenootPartner") + attributes.append("inp.heeftAlsEchtgenootPartner") with get_client() as client: - data = client.get_values(bsn, values) + data = client.get_values(bsn, attributes) # Kids family_members = [] diff --git a/src/openforms/formio/components/np_family_members/tests/test_family_members.py b/src/openforms/formio/components/np_family_members/tests/test_family_members.py index 3c35da6da2..3c8a81da95 100644 --- a/src/openforms/formio/components/np_family_members/tests/test_family_members.py +++ b/src/openforms/formio/components/np_family_members/tests/test_family_members.py @@ -2,7 +2,7 @@ from pathlib import Path from unittest.mock import patch -from django.test import TestCase +from django.test import TestCase, tag from django.utils.html import format_html from django.utils.translation import gettext as _ @@ -150,6 +150,31 @@ def test_get_partners_stuf_bg(self, mock_stufbg_config_get_solo): self.assertEqual(("123123123", "Belly van Doe"), partners_choices[0]) self.assertEqual(("456456456", "Bully van Doe"), partners_choices[1]) + @tag("gh-3864") + @patch("stuf.stuf_bg.client.StufBGConfig.get_solo") + def test_get_single_partner_stuf_bg(self, mock_stufbg_config_get_solo): + stuf_bg_service = StufServiceFactory.build() + mock_stufbg_config_get_solo.return_value = StufBGConfig(service=stuf_bg_service) + soap_response_template = ( + TEST_FILES / "stuf_bg_one_family_member.xml" + ).read_text() + response_content = render_from_string(soap_response_template, {}).encode( + "utf-8" + ) + + with requests_mock.Mocker() as m: + m.post( + stuf_bg_service.get_endpoint(type=EndpointType.vrije_berichten), + content=response_content, + ) + + partners_choices = get_np_family_members_stuf_bg( + bsn="111222333", include_children=False, include_partners=True + ) + + self.assertEqual(1, len(partners_choices)) + self.assertEqual(("123123123", "Belly van Doe"), partners_choices[0]) + @patch("stuf.stuf_bg.client.StufBGConfig.get_solo") def test_get_family_memebers_stuf_bg(self, mock_stufbg_config_get_solo): stuf_bg_service = StufServiceFactory.build() diff --git a/src/stuf/stuf_bg/client.py b/src/stuf/stuf_bg/client.py index 0adb755161..0ac569cad1 100644 --- a/src/stuf/stuf_bg/client.py +++ b/src/stuf/stuf_bg/client.py @@ -69,6 +69,7 @@ def get_values(self, bsn: str, attributes: list[str]) -> dict: response_data, process_namespaces=True, namespaces=NAMESPACE_REPLACEMENTS, + force_list=["inp.heeftAlsEchtgenootPartner", "inp.heeftAlsKinderen"], ) )