nanterre: retourner les erreurs de SAGA dans les web-service de retour de paiement
This commit is contained in:
parent
e0909cce25
commit
bccaea1752
|
@ -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']
|
||||
|
|
|
@ -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 = {
|
||||
|
|
Loading…
Reference in New Issue