diff --git a/passerelle/contrib/toulouse_maelis/models.py b/passerelle/contrib/toulouse_maelis/models.py index 14f23a23..68787b34 100644 --- a/passerelle/contrib/toulouse_maelis/models.py +++ b/passerelle/contrib/toulouse_maelis/models.py @@ -455,8 +455,8 @@ class ToulouseMaelis(BaseResource, HTTPResource): response = self.call('Family', 'updateFamily', dossierNumber=family_id, **post_data) data = serialize_object(response) family_id = data.get('number') - if not family_id: - errors = data.get('rl1ErrorList') + data.get('childErrorList') + errors = data.get('childErrorList') + if errors: err_codes = [x.split(':')[0][:4] for x in errors] raise APIError(' ; '.join(errors), err_code=', '.join(err_codes)) return {'data': data} diff --git a/tests/data/toulouse_maelis/R_update_family_error.xml b/tests/data/toulouse_maelis/R_update_family_error.xml index 23d4b59b..5c5b02e1 100644 --- a/tests/data/toulouse_maelis/R_update_family_error.xml +++ b/tests/data/toulouse_maelis/R_update_family_error.xml @@ -1,14 +1,52 @@ - + - 0 + 196569 + BI + C + true + 614061 + DOEE + JHON + AU + MR + 1938-07-26T00:00:00+01:00 + 0 + Chateau + Paris + 75014 + + false + false + false + + + 614062 + DOE + JANNETTE + MERE + MR + 1940-06-22T00:00:00+02:00 + + + 0 + Chateau + Paris + 75014 + + + false + false + false + + E65a : Il existe déjà un enfant correspondant au nom [ZIMMERMAN], prénom [ROBERT], date de naissance [24/05/1941] - Personne n°[614051] - Famille n°[196544] diff --git a/tests/test_toulouse_maelis.py b/tests/test_toulouse_maelis.py index 9da268a3..9942a9c2 100644 --- a/tests/test_toulouse_maelis.py +++ b/tests/test_toulouse_maelis.py @@ -961,14 +961,9 @@ def test_update_family_maelis_error(mocked_post, mocked_get, con, app): } Link.objects.create(resource=con, family_id='1312', name_id='local') - # get 500 because error repsonse is wrongly formatted - resp = app.post_json(url + '?NameID=local', params=params, status=500) - assert resp.json == { - 'err': 1, - 'err_class': 'zeep.exceptions.XMLParseError', - 'err_desc': "Unexpected element 'adresse', expected 'lastname'", - 'data': None, - } + resp = app.post_json(url + '?NameID=local', params=params) + assert resp.json['err'] == 'E65a' + assert "E65a : Il existe déjà un enfant" in resp.json['err_desc'] @mock.patch('passerelle.utils.Request.get')