From f3825632d15a48858def68d32f131ab922750e22 Mon Sep 17 00:00:00 2001 From: Nicolas ROCHE Date: Tue, 22 Nov 2022 20:23:37 +0100 Subject: [PATCH] toulouse-maelis: allow to send an empty vaccin list (#71643) --- passerelle/contrib/toulouse_maelis/models.py | 2 +- tests/test_toulouse_maelis.py | 28 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/passerelle/contrib/toulouse_maelis/models.py b/passerelle/contrib/toulouse_maelis/models.py index b7df38d3..e9a5cb43 100644 --- a/passerelle/contrib/toulouse_maelis/models.py +++ b/passerelle/contrib/toulouse_maelis/models.py @@ -263,7 +263,7 @@ class ToulouseMaelis(BaseResource, HTTPResource): for key in keys: data = data[key] - for i in range(0, len(data['vaccinList']) or []): + for i in range(0, len(data.get('vaccinList', []))): self.assert_post_data_in_referential( 'Vaccin', post_data, keys + ['vaccinList', i, 'code'], required=False ) diff --git a/tests/test_toulouse_maelis.py b/tests/test_toulouse_maelis.py index 6ce00aaf..12ee5619 100644 --- a/tests/test_toulouse_maelis.py +++ b/tests/test_toulouse_maelis.py @@ -2753,6 +2753,34 @@ def test_update_child_medical_record(mocked_post, mocked_get, con, app): assert resp.json['data'] == 'ok' +@mock.patch('passerelle.utils.Request.get') +@mock.patch('passerelle.utils.Request.post') +def test_update_child_medical_record_with_empty_vaccin_list(mocked_post, mocked_get, con, app): + mocked_get.return_value = FAMILY_SERVICE_WSDL + mocked_post.side_effect = [READ_VACCIN, UPDATE_MEDICAL] + url = get_endpoint('update-child-medical-record') + params = { + 'familyDoctor/name': 'Dre', + 'familyDoctor/phone': '0612341234', + 'familyDoctor/address/street1': 'Alameda', + 'familyDoctor/address/zipcode': '90220', + 'familyDoctor/address/town': 'Compton', + 'allergy1': 'butterscotch, imitation butterscotch, glow-in-the-dark monster make-up, and shrimp', + 'allergy2': 'cauliflower', + 'comment1': "the shrimp allergy isn't fully identified", + 'comment2': None, + 'observ1': 'Ay Caramba!', + 'observ2': None, + 'isAuthHospital': True, + 'hospital': 'Springfield General Hospital', + } + + Link.objects.create(resource=con, family_id='1312', name_id='local') + resp = app.post_json(url + '?NameID=local&child_id=613878', params=params) + assert resp.json['err'] == 0 + assert resp.json['data'] == 'ok' + + def test_update_child_medical_record_not_linked_error(con, app): url = get_endpoint('update-child-medical-record')