toulouse_maelis: check q is a DUI in search-family-dui (#88873) #505

Merged
bdauvergne merged 2 commits from wip/88873-toulouse-parsifal-valider-le-DUI into main 2024-04-03 17:17:38 +02:00
3 changed files with 22 additions and 11 deletions

View File

@ -1401,15 +1401,19 @@ class ToulouseMaelis(BaseResource, HTTPResource):
},
)
def search_family_dui(self, request, q=None):
data = []
if q:
try:
response = self.call('Family', 'readFamilyList', dossierNumber=q)
except APIError:
pass
else:
data = serialize_object(response)
return {'data': data}
if not q:
return {'data': []}
try:
dui = int(q)
if dui >= 2**32:
raise ValueError
except (TypeError, ValueError):
return {'data': []}
try:
response = self.call('Family', 'readFamilyList', dossierNumber=dui)
except APIError:
return {'data': []}
return {'data': serialize_object(response)}
@endpoint(
display_category='Famille',

View File

@ -1726,14 +1726,21 @@ def test_search_family(family_service, con, app):
def test_search_family_dui(family_service, con, app):
family_service.add_soap_response('readFamilyList', get_xml_file('R_read_family_list.xml'))
soap_mock = family_service.add_soap_response('readFamilyList', get_xml_file('R_read_family_list.xml'))
url = get_endpoint('search-family-dui')
resp = app.get(url + '?q=1312')
assert soap_mock.call_count == 1
assert resp.json['err'] == 0
assert len(resp.json['data']) == 1
resp = app.get(url + '?q=')
assert soap_mock.call_count == 1
assert resp.json['err'] == 0
assert resp.json['data'] == []
resp = app.get(url + '?q=abcd')
assert soap_mock.call_count == 1
assert resp.json['err'] == 0
assert resp.json['data'] == []

View File

@ -126,7 +126,7 @@ class ResponsesSoap:
body = response_content
else:
body = response_content
self.requests_mock.add(
return self.requests_mock.add(
responses.POST,
self.address,
body=body,