lingo: fix payment when there are multiple baskets (#19903)
This commit is contained in:
parent
7d916d3d5b
commit
5c35c01baa
|
@ -6,6 +6,7 @@
|
|||
<form action="{% url 'lingo-pay' %}" method="POST">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="next_url" value="{{ cell.page.get_online_url }}" />
|
||||
<input type="hidden" name="regie" value="{{regie_info.regie.id}}" />
|
||||
<ul>
|
||||
{% for item in regie_info.items %}
|
||||
<li><a {% if item.source_url %}href="{{ item.source_url }}{% endif %}">{{ item.subject }}</a>: {{ item.amount }} €
|
||||
|
|
|
@ -24,6 +24,8 @@ from combo.apps.lingo.management.commands.update_transactions import Command as
|
|||
from combo.apps.lingo.management.commands.notify_payments import Command as NotifyPaymentsCommand
|
||||
from combo.utils import sign_url
|
||||
|
||||
from test_manager import login as login_app
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
client = Client()
|
||||
|
@ -144,7 +146,7 @@ def test_successfull_items_payment(regie, user):
|
|||
assert urlparse.urlparse(resp.url).path == '/'
|
||||
|
||||
def test_add_amount_to_basket(key, regie, user):
|
||||
other_regie = Regie(label='test2', slug='test2')
|
||||
other_regie = Regie(label='test2', slug='test2', service='dummy', service_options={'siret': '1234'})
|
||||
other_regie.save()
|
||||
|
||||
user_email = 'foo@example.com'
|
||||
|
@ -218,6 +220,25 @@ def test_add_amount_to_basket(key, regie, user):
|
|||
assert resp.status_code == 400
|
||||
assert resp.content == 'Unknown regie'
|
||||
|
||||
def test_pay_multiple_regies(app, key, regie, user):
|
||||
test_add_amount_to_basket(key, regie, user)
|
||||
|
||||
page = Page(title='xxx', slug='test_basket_cell', template_name='standard')
|
||||
page.save()
|
||||
cell = LingoBasketCell(page=page, placeholder='content', order=0)
|
||||
cell.save()
|
||||
|
||||
resp = login_app(app).get(page.get_online_url())
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.location.startswith('http://dummy-payment.demo.entrouvert.com/')
|
||||
qs = urlparse.parse_qs(urlparse.urlparse(resp.location).query)
|
||||
assert qs['amount'] == ['223.35']
|
||||
|
||||
resp = login_app(app).get(page.get_online_url())
|
||||
resp = resp.forms[1].submit()
|
||||
qs = urlparse.parse_qs(urlparse.urlparse(resp.location).query)
|
||||
assert qs['amount'] == ['22.23']
|
||||
|
||||
def test_cancel_basket_item(key, regie, user):
|
||||
user_email = 'foo@example.com'
|
||||
User.objects.get_or_create(email=user_email)
|
||||
|
|
Loading…
Reference in New Issue