Projet

Général

Profil

0001-lingo-handle-exceptions-raised-by-backend.request-40.patch

Valentin Deniaud, 03 mars 2020 10:47

Télécharger (2,68 ko)

Voir les différences:

Subject: [PATCH] lingo: handle exceptions raised by backend.request (#40244)

 combo/apps/lingo/views.py   |  7 ++++++-
 tests/test_lingo_payment.py | 15 +++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)
combo/apps/lingo/views.py
397 397
                kwargs['capture_date'] = capture_date
398 398
        if regie.transaction_options:
399 399
            kwargs.update(regie.transaction_options)
400
        (order_id, kind, data) = payment.request(total_amount, **kwargs)
401 400
        logger = logging.getLogger(__name__)
401
        try:
402
            (order_id, kind, data) = payment.request(total_amount, **kwargs)
403
        except eopayment.PaymentException as e:
404
            logger.error('failed to initiate payment request: %s', e)
405
            messages.error(request, _('Failed to initiate payment request'))
406
            return HttpResponseRedirect(next_url)
402 407
        logger.info(u'emitted payment request with id %s', smart_text(order_id), extra={
403 408
            'eopayment_order_id': smart_text(order_id), 'eopayment_data': repr(data)})
404 409
        transaction.order_id = order_id
tests/test_lingo_payment.py
854 854
    assert Transaction.objects.get(id=t1.id).status == EXPIRED
855 855
    assert Transaction.objects.get(id=t2.id).status == 0
856 856

  
857

  
857 858
def test_transaction_validate(app, key, regie, user):
858 859
    t1 = Transaction(regie=regie, bank_data={'bank': 'data'}, amount=12,
859 860
            status=eopayment.PAID)
......
1269 1270
        'error': False,
1270 1271
        'error_msg': ''
1271 1272
    }
1273

  
1274

  
1275
def test_request_payment_exception(app, basket_page, regie, user):
1276
    item = BasketItem.objects.create(user=user, regie=regie,
1277
                        subject='test_item', amount='10.5',
1278
                        source_url='http://example.org/testitem/')
1279

  
1280
    with mock.patch('eopayment.dummy.Payment.request', autospec=True) as mock_request:
1281
        mock_request.side_effect = eopayment.PaymentException
1282
        resp = login(app).get(basket_page.get_online_url())
1283
        resp = resp.form.submit()
1284
        assert resp.url == basket_page.get_online_url()
1285
        resp = resp.follow()
1286
        assert 'Failed to initiate payment request' in resp.text
1272
-