lingo: allow passing custom kwargs to eopayment.request (#47477)
This commit is contained in:
parent
543debcc2e
commit
84f2f8fd10
|
@ -416,6 +416,13 @@ class PayMixin(object):
|
|||
if regie.can_pay_only_one_basket_item:
|
||||
item = (items or remote_items)[0]
|
||||
kwargs['subject'] = item.subject
|
||||
# allow easy testing/use of backend specific keyword arguments
|
||||
EOPAYMENT_REQUEST_KWARGS_PREFIX = 'eopayment_request_kwargs_'
|
||||
if hasattr(item, 'request_data'):
|
||||
for key in item.request_data:
|
||||
if key.startswith(EOPAYMENT_REQUEST_KWARGS_PREFIX):
|
||||
arg_name = key[len(EOPAYMENT_REQUEST_KWARGS_PREFIX):]
|
||||
kwargs[arg_name] = item.request_data[key]
|
||||
if regie.transaction_options:
|
||||
kwargs.update(regie.transaction_options)
|
||||
try:
|
||||
|
|
|
@ -1590,6 +1590,16 @@ def test_successfull_items_can_pay_only_one_basket_item(app, basket_page, mono_r
|
|||
assert 'bar item' in resp.text
|
||||
|
||||
|
||||
def test_extra_kwargs_can_pay_only_one_basket_item(app, basket_page, mono_regie, user):
|
||||
item = BasketItem.objects.create(user=user, regie=mono_regie, amount=42, subject='foo item',
|
||||
request_data={'eopayment_request_kwargs_info3': 'très fragile'})
|
||||
|
||||
resp = login(app).get(item.payment_url)
|
||||
qs = urlparse.parse_qs(urlparse.urlparse(resp.location).query)
|
||||
assert qs['subject'][0] == 'foo item', 'item.subject was not provided to eopayment'
|
||||
assert qs['info3'][0] == 'très fragile'
|
||||
|
||||
|
||||
@mock.patch('combo.apps.lingo.models.BasketItem.get_items_to_be_paid')
|
||||
def test_failure_can_only_pay_one_basket_item(get_items_to_be_paid, app, mono_regie, user, user_name_id, caplog):
|
||||
item = mock.Mock(spec=['capture_date'], capture_date=None)
|
||||
|
|
Loading…
Reference in New Issue