signal_arretes: handle error when requested document is not ready (#70604)

This commit is contained in:
Corentin Sechet 2022-10-31 15:51:50 +01:00
parent 87055032a0
commit e5275f8a1d
2 changed files with 15 additions and 0 deletions

View File

@ -280,6 +280,9 @@ class SignalArretes(BaseResource, HTTPResource):
def request_document(self, request, request_id):
result = self._get_value('GetDocumentDemande', request_id=request_id)
if isinstance(result, str):
raise APIError(result)
filename = result['name']
content_type = result['contentType']

View File

@ -87,6 +87,12 @@ DOCUMENT_CONTENT = b'Test file content'
@urlmatch(netloc='^sa.net$', path='^/CreationDemandeService.svc/GetDocumentDemande/.*')
def mock_get_document_demande(url, request):
if url.path.endswith('unavailable'):
return response(
200,
json.dumps({'GetDocumentDemandeResult': json.dumps("fichier indisponible")}),
)
if url.path.endswith('corrupted'):
content = '$$$$$$$'
else:
@ -274,6 +280,12 @@ def test_request_document(app, connector, mock_signal_arretes):
assert result.json['err']
assert 'Corrupted base64 content' in result.json['err_desc']
result = app.get(endpoint, params={'request_id': 'document_unavailable'})
assert 'err' in result.json
assert result.json['err']
assert 'fichier indisponible' in result.json['err_desc']
@patch('passerelle.utils.Request.get')
@pytest.mark.parametrize(