nanterre: retourner les erreurs de SAGA dans les web-service de retour de paiement

This commit is contained in:
Benjamin Dauvergne 2017-09-12 11:06:39 +02:00
parent e0909cce25
commit bccaea1752
2 changed files with 38 additions and 0 deletions

View File

@ -209,3 +209,35 @@ def test_tiers_saga(app, settings, nanterre_classic_family):
assert len(data['factures']) == 1
assert data['factures'][0]['num'] == '00013-A1'
assert decimal.Decimal(data['factures'][0]['montant_initial']) == 16
@httmock.urlmatch()
def saga_retour_erreur(url, request):
assert url.netloc == 'saga.example.com'
assert url.path.startswith('/foobar/')
if 'PageRetourAsynchrone' in request.body:
return xml_literal('PageRetourAsynchroneReturn',
u'<erreur>Ça va pas du tout</erreur>')
elif 'PageRetourSynchrone' in request.body:
return xml_literal('PageRetourSynchroneReturn',
u'<erreur>Ça va pas du tout</erreur>')
else:
raise NotImplementedError
with httmock.HTTMock(saga_retour_erreur):
response = app.post_json(
reverse('rsu-api-saga-retour-synchrone'),
params={
'idop': '1234',
}
)
assert response.json['err'] == 1
assert response.json['errors'] == [u'Ça va pas du tout']
response = app.post_json(
reverse('rsu-api-saga-retour-asynchrone'),
params={
'idop': '1234',
}
)
assert response.json['err'] == 1
assert response.json['errors'] == [u'Ça va pas du tout']

View File

@ -206,6 +206,9 @@ class Saga(object):
if tree is None:
return None, error
if tree.tag == 'erreur':
return None, tree.text
if tree.tag != 'ok':
return None, 'tag is not ok'
result = {
@ -231,6 +234,9 @@ class Saga(object):
if tree is None:
return None, error
if tree.tag == 'erreur':
return None, tree.text
if tree.tag != 'ok':
return None, 'tag is not ok'
result = {