Fix marking an overpaid order as paid manually

This commit is contained in:
Raphael Michel
2018-11-20 10:37:08 +01:00
parent d4c1fcf838
commit aee44a3284
2 changed files with 24 additions and 1 deletions

View File

@@ -587,6 +587,29 @@ def test_order_mark_paid_blocked(client, env):
assert o.status == Order.STATUS_EXPIRED
@pytest.mark.django_db
def test_order_mark_paid_overpaid_exired(client, env):
o = Order.objects.get(id=env[2].id)
o.status = Order.STATUS_EXPIRED
o.expires = now() - timedelta(days=5)
o.save()
o.payments.create(state=OrderPayment.PAYMENT_STATE_CONFIRMED, amount=o.total * 2)
assert o.pending_sum == -1 * o.total
q = Quota.objects.create(event=env[0], size=0)
q.items.add(env[3])
client.login(email='dummy@dummy.dummy', password='dummy')
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
'status': 'p',
'force': 'on'
}, follow=True)
assert 'alert-success' in response.rendered_content
o = Order.objects.get(id=env[2].id)
assert o.status == Order.STATUS_PAID
assert o.payments.last().amount == 0
assert o.pending_sum == -1 * o.total
@pytest.mark.django_db
def test_order_mark_paid_forced(client, env):
o = Order.objects.get(id=env[2].id)