diff --git a/passerelle/apps/atal_rest/models.py b/passerelle/apps/atal_rest/models.py index adf45d9b..5f4b7523 100644 --- a/passerelle/apps/atal_rest/models.py +++ b/passerelle/apps/atal_rest/models.py @@ -491,6 +491,7 @@ class AtalREST(BaseResource, HTTPResource): }, ) def worksrequest_intervention_status(self, request, number): - resp_data = self._call('/api/WorksRequests/GetInterventionStates', params={'number': number})[0] + resp_data = self._call('/api/WorksRequests/GetInterventionStates', params={'number': number}) + resp_data = resp_data[0] if resp_data else {} resp_data['WorkStateLabel'] = INTERVENTION_STATUS_MAP.get(resp_data.get('WorkState', ''), '') return {'data': resp_data} diff --git a/tests/test_atal_rest.py b/tests/test_atal_rest.py index 0faf456b..2fef4b79 100644 --- a/tests/test_atal_rest.py +++ b/tests/test_atal_rest.py @@ -93,6 +93,19 @@ def test_worksrequest_intervention_status(app, connector): assert json_resp['data']['WorkStateLabel'] == 'En cours' +def test_worksrequest_intervention_status_empty_list(app, connector): + with responses.RequestsMock() as rsps: + rsps.get( + 'https://atal.invalid/api/WorksRequests/GetInterventionStates', + status=200, + json=[], + ) + resp = app.get('/atal-rest/test/worksrequest-intervention-status?number=DIT23070011') + json_resp = resp.json + assert json_resp['err'] == 0 + assert json_resp['data'] == {'WorkStateLabel': ''} + + def test_worksrequests_single_attachment(app, connector): with responses.RequestsMock() as rsps: rsps.post('https://atal.invalid/api/WorksRequests/1/Attachments', status=200, body=b'')