lingo: fix payment when there are multiple baskets (#19903)

This commit is contained in:
Frédéric Péters 2017-11-06 12:07:14 +01:00
parent 7d916d3d5b
commit 5c35c01baa
2 changed files with 23 additions and 1 deletions

View File

@ -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 }} €

View File

@ -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)