atal: handle error when uploading big file (#76884) #229
|
@ -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(
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue