atal: handle error when uploading big file (#76884)
gitea/passerelle/pipeline/head This commit looks good Details

This commit is contained in:
Emmanuel Cazenave 2023-04-24 14:17:45 +02:00
parent 0a6733f070
commit 822a0d83b4
2 changed files with 16 additions and 1 deletions

View File

@ -23,6 +23,7 @@ from django.db import models
from django.utils import dateformat, dateparse
from django.utils.translation import gettext_lazy as _
from zeep import helpers
from zeep.exceptions import Fault
from passerelle.base.models import BaseResource
from passerelle.utils.api import endpoint
@ -286,7 +287,11 @@ class ATALConnector(BaseResource):
'numeroDemande': post_data['numero_demande'],
'nomFichier': filename,
}
self._soap_call(wsdl='ChargementPiecesJointesService', method='upload', **data)
try:
self._soap_call(wsdl='ChargementPiecesJointesService', method='upload', **data)
except Fault as e:
raise APIError(str(e))
return {}
@endpoint(

View File

@ -7,6 +7,7 @@ import pytest
from django.contrib.contenttypes.models import ContentType
from django.utils.http import urlencode
from requests import RequestException
from zeep.exceptions import Fault
from passerelle.apps.atal.models import ATALConnector
from passerelle.base.models import AccessRight, ApiUser
@ -189,6 +190,15 @@ def test_upload(app, connector, monkeypatch):
}
def test_upload_file_too_big(app, connector, monkeypatch):
mock_atal_soap_call(monkeypatch, side_effect=Fault('File too big'))
base64_str = 'eyJsYXN0X2NoZWNrIjoiMjAxOS0wNC0xMFQxMjowODoyOVoiL' + 'CJweXBpX3ZlcnNpb24iOiIxOS4wLjMifQ=='
params = {'numero_demande': 'DIT19050001', 'nom_fichier': 'data.json', 'file': {'content': base64_str}}
response = app.post_json('/atal/slug-atal/upload', params=params)
assert response.json['err'] == 1
assert response.json['err_desc'] == 'File too big'
def test_retrieve_details_demande(app, connector, monkeypatch):
import passerelle.utils