diff --git a/passerelle/apps/astech/models.py b/passerelle/apps/astech/models.py index f2ff939c..31df5fa6 100644 --- a/passerelle/apps/astech/models.py +++ b/passerelle/apps/astech/models.py @@ -305,6 +305,8 @@ class ASTech(BaseResource, HTTPResource): 'designation': True, } companies = self.call('apicli/rule-call-by-alias/societes_demandeur/invoke', json=payload) + if not isinstance(companies, dict): + raise APIError('Invalid response: %s' % companies) companies = [{'id': str(key), 'text': value} for key, value in companies.items()] companies.sort(key=lambda item: item['id']) # "same as output" sort return {'data': companies} diff --git a/tests/test_astech.py b/tests/test_astech.py index 7cd2a5eb..c9f661ec 100644 --- a/tests/test_astech.py +++ b/tests/test_astech.py @@ -204,6 +204,11 @@ def test_companies(mocked_auth, mocked_request, app, setup): {"id": "11", "text": "11 / PLOMBERIE"}, ] + mocked_request.return_value = tests.utils.FakedResponse(content="[]", status_code=200) + response = app.get(endpoint) + assert response.json['err'] == 1 + assert response.json['err_desc'] == 'Invalid response: []' + @mock.patch("passerelle.utils.Request.request") @mock.patch("passerelle.apps.astech.models.ASTech.get_authorization")