mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Fix a source of test flakiness
This commit is contained in:
@@ -71,7 +71,7 @@ def env():
|
||||
t.members.add(user)
|
||||
t.limit_events.add(event)
|
||||
o = Order.objects.create(
|
||||
code='FOO', event=event, email='dummy@dummy.test',
|
||||
code='ABC32', event=event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=14, locale='en',
|
||||
@@ -105,47 +105,48 @@ def env():
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_list(client, env):
|
||||
o = env[2]
|
||||
with scopes_disabled():
|
||||
otherticket = Item.objects.create(event=env[0], name='Early-bird ticket',
|
||||
category=None, default_price=23,
|
||||
admission=True, personalized=True)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?query=peter')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?query=hans')
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?query=dummy')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=p')
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=n')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=ne')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?item=%s' % otherticket.id)
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?item=%s' % env[3].id)
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?provider=free')
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?provider=banktransfer')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=o')
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
env[2].expires = now() - timedelta(days=10)
|
||||
env[2].save()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=o')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=pa')
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
env[2].require_approval = True
|
||||
env[2].save()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=pa')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
|
||||
with scopes_disabled():
|
||||
q = Question.objects.create(event=env[0], question="Q", type="N", required=True)
|
||||
@@ -153,9 +154,9 @@ def test_order_list(client, env):
|
||||
op = env[2].positions.first()
|
||||
qa = QuestionAnswer.objects.create(question=q, orderposition=op, answer="12")
|
||||
response = client.get('/control/event/dummy/dummy/orders/?question=%d&answer=12' % q.pk)
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?question=%d&answer=13' % q.pk)
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
|
||||
q.type = "C"
|
||||
q.save()
|
||||
@@ -164,24 +165,24 @@ def test_order_list(client, env):
|
||||
qo2 = q.options.create(answer="Bar")
|
||||
qa.options.add(qo1)
|
||||
response = client.get('/control/event/dummy/dummy/orders/?question=%d&answer=%d' % (q.pk, qo1.pk))
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?question=%d&answer=%d' % (q.pk, qo2.pk))
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=testmode')
|
||||
assert 'FOO' not in response.content.decode()
|
||||
assert o.code not in response.content.decode()
|
||||
assert 'TEST MODE' not in response.content.decode()
|
||||
env[2].testmode = True
|
||||
env[2].save()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=testmode')
|
||||
assert 'FOO' in response.content.decode()
|
||||
assert o.code in response.content.decode()
|
||||
assert 'TEST MODE' in response.content.decode()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_detail(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/')
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/')
|
||||
assert 'Early-bird' in response.content.decode()
|
||||
assert 'Peter' in response.content.decode()
|
||||
assert 'Lukas Gelöscht' in response.content.decode()
|
||||
@@ -193,7 +194,7 @@ def test_order_detail_show_test_mode(client, env):
|
||||
env[2].testmode = True
|
||||
env[2].save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/')
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/')
|
||||
assert 'TEST MODE' in response.content.decode()
|
||||
|
||||
|
||||
@@ -203,7 +204,7 @@ def test_order_set_contact(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=0)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/contact', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/contact', {
|
||||
'email': 'admin@rami.io'
|
||||
})
|
||||
with scopes_disabled():
|
||||
@@ -218,7 +219,7 @@ def test_order_set_customer(client, env):
|
||||
c = org.customers.create(email='foo@example.org')
|
||||
org.settings.customer_accounts = True
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/contact', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/contact', {
|
||||
'email': 'admin@rami.io',
|
||||
'customer': c.pk
|
||||
}, follow=True)
|
||||
@@ -233,7 +234,7 @@ def test_order_set_locale(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=0)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/locale', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/locale', {
|
||||
'locale': 'de'
|
||||
})
|
||||
with scopes_disabled():
|
||||
@@ -247,7 +248,7 @@ def test_order_set_locale_with_invalid_locale_value(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=0)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/locale', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/locale', {
|
||||
'locale': 'fr'
|
||||
})
|
||||
with scopes_disabled():
|
||||
@@ -261,7 +262,7 @@ def test_order_set_comment(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=0)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/comment', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/comment', {
|
||||
'comment': 'Foo'
|
||||
})
|
||||
with scopes_disabled():
|
||||
@@ -275,7 +276,7 @@ def test_order_transition_to_expired_success(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=0)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'e'
|
||||
})
|
||||
with scopes_disabled():
|
||||
@@ -289,7 +290,7 @@ def test_order_transition_to_paid_in_time_success(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=0)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'amount': str(env[2].pending_sum),
|
||||
'payment_date': now().date().isoformat(),
|
||||
'status': 'p'
|
||||
@@ -308,7 +309,7 @@ def test_order_transition_to_paid_expired_quota_left(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=10)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
res = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
res = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
@@ -329,7 +330,7 @@ def test_order_approve(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=10)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
res = client.post('/control/event/dummy/dummy/orders/FOO/approve', {
|
||||
res = client.post('/control/event/dummy/dummy/orders/ABC32/approve', {
|
||||
})
|
||||
with scopes_disabled():
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
@@ -348,7 +349,7 @@ def test_order_deny(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=10)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
res = client.post('/control/event/dummy/dummy/orders/FOO/deny', {
|
||||
res = client.post('/control/event/dummy/dummy/orders/ABC32/deny', {
|
||||
})
|
||||
with scopes_disabled():
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
@@ -360,10 +361,10 @@ def test_order_deny(client, env):
|
||||
@pytest.mark.django_db
|
||||
def test_order_delete_require_testmode(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
res = client.get('/control/event/dummy/dummy/orders/FOO/delete', {}, follow=True)
|
||||
res = client.get('/control/event/dummy/dummy/orders/ABC32/delete', {}, follow=True)
|
||||
assert 'alert-danger' in res.content.decode()
|
||||
assert 'Only orders created in test mode can be deleted' in res.content.decode()
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/delete', {}, follow=True)
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/delete', {}, follow=True)
|
||||
with scopes_disabled():
|
||||
assert Order.objects.get(id=env[2].id)
|
||||
|
||||
@@ -375,7 +376,7 @@ def test_order_delete(client, env):
|
||||
o.testmode = True
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/delete', {}, follow=True)
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/delete', {}, follow=True)
|
||||
with scopes_disabled():
|
||||
assert not Order.objects.filter(id=env[2].id).exists()
|
||||
|
||||
@@ -401,8 +402,8 @@ def test_order_transition(client, env, process):
|
||||
o.status = process[0]
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=' + process[1])
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=' + process[1])
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'amount': str(o.pending_sum),
|
||||
'payment_date': now().date().isoformat(),
|
||||
'status': process[1]
|
||||
@@ -423,8 +424,8 @@ def test_order_cancel_free(client, env):
|
||||
o.total = Decimal('0.00')
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'c'
|
||||
})
|
||||
with scopes_disabled():
|
||||
@@ -441,8 +442,8 @@ def test_order_cancel_paid_keep_fee(client, env):
|
||||
o.save()
|
||||
o.event.tax_rules.create(rate=Decimal('7.00'), default=True)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'c',
|
||||
'cancellation_fee': '6.00'
|
||||
})
|
||||
@@ -471,8 +472,8 @@ def test_order_cancel_paid_keep_fee_taxed(client, env):
|
||||
o.save()
|
||||
tr7 = o.event.tax_rules.create(rate=Decimal('7.00'), default=True)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'c',
|
||||
'cancellation_fee': '6.00'
|
||||
})
|
||||
@@ -509,8 +510,8 @@ def test_order_cancel_paid_keep_fee_tax_split(client, env):
|
||||
op2._calculate_tax(tax_rule=tr19)
|
||||
op2.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'c',
|
||||
'cancellation_fee': '6.00'
|
||||
})
|
||||
@@ -543,8 +544,8 @@ def test_order_cancel_pending_keep_fee(client, env):
|
||||
o.status = Order.STATUS_PENDING
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'c',
|
||||
'cancellation_fee': '6.00'
|
||||
})
|
||||
@@ -568,8 +569,8 @@ def test_order_cancel_pending_fee_too_high(client, env):
|
||||
o.status = Order.STATUS_PENDING
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'c',
|
||||
'cancellation_fee': '26.00'
|
||||
})
|
||||
@@ -584,8 +585,8 @@ def test_order_cancel_pending_fee_too_high(client, env):
|
||||
@pytest.mark.django_db
|
||||
def test_order_cancel_unpaid_fees_allowed(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c')
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'c',
|
||||
'cancellation_fee': '6.00'
|
||||
})
|
||||
@@ -601,7 +602,7 @@ def test_order_cancel_unpaid_fees_allowed(client, env):
|
||||
def test_order_invoice_create_forbidden(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
env[0].settings.set('invoice_generate', 'no')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoice', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoice', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -611,7 +612,7 @@ def test_order_invoice_create_duplicate(client, env):
|
||||
with scopes_disabled():
|
||||
generate_invoice(env[2])
|
||||
env[0].settings.set('invoice_generate', 'admin')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoice', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoice', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -619,7 +620,7 @@ def test_order_invoice_create_duplicate(client, env):
|
||||
def test_order_invoice_create_ok(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
env[0].settings.set('invoice_generate', 'admin')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoice', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoice', {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
with scopes_disabled():
|
||||
assert env[2].invoices.exists()
|
||||
@@ -632,7 +633,7 @@ def test_order_invoice_retransmit(client, env):
|
||||
i = generate_invoice(env[2])
|
||||
i.transmission_status = Invoice.TRANSMISSION_STATUS_FAILED
|
||||
i.save()
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoices/%d/retransmit' % i.pk, {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoices/%d/retransmit' % i.pk, {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
i.refresh_from_db()
|
||||
assert i.transmission_status == Invoice.TRANSMISSION_STATUS_PENDING
|
||||
@@ -645,7 +646,7 @@ def test_order_invoice_regenerate(client, env):
|
||||
i = generate_invoice(env[2])
|
||||
InvoiceAddress.objects.create(name_parts={'full_name': 'Foo', "_scheme": "full"}, order=env[2])
|
||||
env[0].settings.set('invoice_generate', 'admin')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoices/%d/regenerate' % i.pk, {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoices/%d/regenerate' % i.pk, {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
i.refresh_from_db()
|
||||
assert 'Foo' in i.invoice_to
|
||||
@@ -659,14 +660,14 @@ def test_order_invoice_regenerate_canceled(client, env):
|
||||
with scopes_disabled():
|
||||
i = generate_invoice(env[2])
|
||||
generate_cancellation(i)
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoices/%d/regenerate' % i.pk, {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoices/%d/regenerate' % i.pk, {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_invoice_regenerate_unknown(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoices/%d/regenerate' % 3, {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoices/%d/regenerate' % 3, {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -677,7 +678,7 @@ def test_order_invoice_reissue(client, env):
|
||||
i = generate_invoice(env[2])
|
||||
InvoiceAddress.objects.create(name_parts={'full_name': 'Foo', "_scheme": "full"}, order=env[2])
|
||||
env[0].settings.set('invoice_generate', 'admin')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoices/%d/reissue' % i.pk, {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoices/%d/reissue' % i.pk, {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
i.refresh_from_db()
|
||||
with scopes_disabled():
|
||||
@@ -693,14 +694,14 @@ def test_order_invoice_reissue_canceled(client, env):
|
||||
with scopes_disabled():
|
||||
i = generate_invoice(env[2])
|
||||
generate_cancellation(i)
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoices/%d/reissue' % i.pk, {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoices/%d/reissue' % i.pk, {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_invoice_reissue_unknown(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/invoices/%d/reissue' % 3, {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/invoices/%d/reissue' % 3, {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -708,9 +709,9 @@ def test_order_invoice_reissue_unknown(client, env):
|
||||
def test_order_resend_link(client, env):
|
||||
mail.outbox = []
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/resend', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/resend', {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
assert 'FOO' in mail.outbox[0].body
|
||||
assert 'ABC32' in mail.outbox[0].body
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -720,9 +721,9 @@ def test_order_reactivate_not_canceled(client, env):
|
||||
o.status = Order.STATUS_PAID
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/reactivate', follow=True)
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/reactivate', follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/reactivate', follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/reactivate', follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -735,7 +736,7 @@ def test_order_reactivate(client, env):
|
||||
o.status = Order.STATUS_CANCELED
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/reactivate', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/reactivate', {
|
||||
}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
with scopes_disabled():
|
||||
@@ -750,9 +751,9 @@ def test_order_extend_not_pending(client, env):
|
||||
o.status = Order.STATUS_PAID
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/extend', follow=True)
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/extend', follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -765,7 +766,7 @@ def test_order_extend_not_expired(client, env):
|
||||
generate_invoice(o)
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
@@ -785,7 +786,7 @@ def test_order_extend_overdue_quota_empty(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
@@ -808,7 +809,7 @@ def test_order_extend_overdue_quota_blocked_by_waiting_list(client, env):
|
||||
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
@@ -833,7 +834,7 @@ def test_order_extend_expired_quota_left(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
with scopes_disabled():
|
||||
assert o.invoices.count() == 2
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-success' in response.content
|
||||
@@ -857,7 +858,7 @@ def test_order_extend_expired_quota_empty(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in response.content
|
||||
@@ -878,7 +879,7 @@ def test_order_extend_expired_quota_empty_ignore(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate,
|
||||
'quota_ignore': 'on'
|
||||
}, follow=True)
|
||||
@@ -905,7 +906,7 @@ def test_order_extend_expired_seat_free(client, env):
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
assert o.invoices.count() == 2
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-success' in response.content
|
||||
@@ -933,7 +934,7 @@ def test_order_extend_expired_seat_blocked(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in response.content
|
||||
@@ -976,7 +977,7 @@ def test_order_extend_expired_seat_taken(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in response.content
|
||||
@@ -1005,7 +1006,7 @@ def test_order_extend_expired_quota_partial(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in response.content
|
||||
@@ -1035,7 +1036,7 @@ def test_order_extend_expired_voucher_budget_ok(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-success' in response.content
|
||||
@@ -1066,7 +1067,7 @@ def test_order_extend_expired_voucher_budget_fail(client, env):
|
||||
q.items.add(env[3])
|
||||
newdate = (now() + timedelta(days=20)).strftime("%Y-%m-%d")
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/extend', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/extend', {
|
||||
'expires': newdate
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in response.content
|
||||
@@ -1090,7 +1091,7 @@ def test_order_mark_paid_overdue_quota_blocked_by_waiting_list(client, env):
|
||||
env[0].waitinglistentries.create(item=env[3], email='foo@bar.com')
|
||||
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
@@ -1112,7 +1113,7 @@ def test_order_mark_paid_blocked(client, env):
|
||||
q.items.add(env[3])
|
||||
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'amount': str(o.pending_sum),
|
||||
'payment_date': now().date().isoformat(),
|
||||
'status': 'p'
|
||||
@@ -1137,7 +1138,7 @@ def test_order_mark_paid_overpaid_expired(client, env):
|
||||
q.items.add(env[3])
|
||||
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': '0.00',
|
||||
@@ -1162,7 +1163,7 @@ def test_order_mark_paid_forced(client, env):
|
||||
q.items.add(env[3])
|
||||
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
@@ -1206,7 +1207,7 @@ def test_order_mark_paid_expired_seat_taken(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=100)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
@@ -1236,7 +1237,7 @@ def test_order_mark_paid_expired_blocked(client, env):
|
||||
q = Quota.objects.create(event=env[0], size=100)
|
||||
q.items.add(env[3])
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
@@ -1250,7 +1251,7 @@ def test_order_mark_paid_expired_blocked(client, env):
|
||||
|
||||
env[0].settings.seating_allow_blocked_seats_for_channel = ["bar"]
|
||||
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition', {
|
||||
'status': 'p',
|
||||
'payment_date': now().date().isoformat(),
|
||||
'amount': str(o.pending_sum),
|
||||
@@ -1265,22 +1266,22 @@ def test_order_mark_paid_expired_blocked(client, env):
|
||||
@pytest.mark.django_db
|
||||
def test_order_go_lowercase(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/go?code=DuMmyfoO')
|
||||
assert response['Location'].endswith('/control/event/dummy/dummy/orders/FOO/')
|
||||
response = client.get('/control/event/dummy/dummy/orders/go?code=DuMmyabC32')
|
||||
assert response['Location'].endswith('/control/event/dummy/dummy/orders/ABC32/')
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_go_with_slug(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/go?code=DUMMYFOO')
|
||||
assert response['Location'].endswith('/control/event/dummy/dummy/orders/FOO/')
|
||||
response = client.get('/control/event/dummy/dummy/orders/go?code=DUMMYABC32')
|
||||
assert response['Location'].endswith('/control/event/dummy/dummy/orders/ABC32/')
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_go_found(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/go?code=FOO')
|
||||
assert response['Location'].endswith('/control/event/dummy/dummy/orders/FOO/')
|
||||
response = client.get('/control/event/dummy/dummy/orders/go?code=ABC32')
|
||||
assert response['Location'].endswith('/control/event/dummy/dummy/orders/ABC32/')
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -1768,7 +1769,7 @@ def test_check_vatid(client, env):
|
||||
ia = InvoiceAddress.objects.create(order=env[2], is_business=True, vat_id='ATU1234567', country=Country('AT'))
|
||||
with mock.patch('pretix.base.services.tax._validate_vat_id_EU') as mock_validate:
|
||||
mock_validate.return_value = 'AT123456'
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
ia.refresh_from_db()
|
||||
assert ia.vat_id_validated
|
||||
@@ -1781,7 +1782,7 @@ def test_check_vatid_no_entered(client, env):
|
||||
ia = InvoiceAddress.objects.create(order=env[2], is_business=True, country=Country('AT'))
|
||||
with mock.patch('pretix.base.services.tax._validate_vat_id_EU') as mock_validate:
|
||||
mock_validate.return_value = 'AT123456'
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
ia.refresh_from_db()
|
||||
assert not ia.vat_id_validated
|
||||
@@ -1792,7 +1793,7 @@ def test_check_vatid_invalid_country(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
with scopes_disabled():
|
||||
ia = InvoiceAddress.objects.create(order=env[2], is_business=True, vat_id='ATU1234567', country=Country('FR'))
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
ia.refresh_from_db()
|
||||
assert not ia.vat_id_validated
|
||||
@@ -1805,7 +1806,7 @@ def test_check_vatid_noneu_country(client, env):
|
||||
ia = InvoiceAddress.objects.create(order=env[2], is_business=True, vat_id='CHU1234567', country=Country('CH'))
|
||||
with mock.patch('pretix.base.services.tax._validate_vat_id_EU') as mock_validate:
|
||||
mock_validate.return_value = 'AT123456'
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
ia.refresh_from_db()
|
||||
assert not ia.vat_id_validated
|
||||
@@ -1818,7 +1819,7 @@ def test_check_vatid_no_country(client, env):
|
||||
ia = InvoiceAddress.objects.create(order=env[2], is_business=True, vat_id='ATU1234567')
|
||||
with mock.patch('pretix.base.services.tax._validate_vat_id_EU') as mock_validate:
|
||||
mock_validate.return_value = 'AT123456'
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
ia.refresh_from_db()
|
||||
assert not ia.vat_id_validated
|
||||
@@ -1829,7 +1830,7 @@ def test_check_vatid_no_invoiceaddress(client, env):
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
with mock.patch('pretix.base.services.tax._validate_vat_id_EU') as mock_validate:
|
||||
mock_validate.return_value = 'AT123456'
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -1843,7 +1844,7 @@ def test_check_vatid_invalid(client, env):
|
||||
raise VATIDFinalError('Fail')
|
||||
|
||||
mock_validate.side_effect = raiser
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
ia.refresh_from_db()
|
||||
assert not ia.vat_id_validated
|
||||
@@ -1859,7 +1860,7 @@ def test_check_vatid_unavailable(client, env):
|
||||
raise VATIDTemporaryError('Fail')
|
||||
|
||||
mock_validate.side_effect = raiser
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/checkvatid', {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/checkvatid', {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
ia.refresh_from_db()
|
||||
assert not ia.vat_id_validated
|
||||
@@ -1870,11 +1871,11 @@ def test_cancel_payment(client, env):
|
||||
with scopes_disabled():
|
||||
p = env[2].payments.last()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/payments/{}/cancel'.format(p.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/payments/{}/cancel'.format(p.pk), {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
p.refresh_from_db()
|
||||
assert p.state == OrderPayment.PAYMENT_STATE_CANCELED
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/payments/{}/cancel'.format(p.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/payments/{}/cancel'.format(p.pk), {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
|
||||
@@ -1889,13 +1890,13 @@ def test_cancel_refund(client, env):
|
||||
execution_date=now(),
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/cancel'.format(r.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/cancel'.format(r.pk), {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
assert r.state == OrderRefund.REFUND_STATE_CANCELED
|
||||
r.state = OrderRefund.REFUND_STATE_DONE
|
||||
r.save()
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/cancel'.format(r.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/cancel'.format(r.pk), {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
assert r.state == OrderRefund.REFUND_STATE_DONE
|
||||
@@ -1912,7 +1913,7 @@ def test_process_refund(client, env):
|
||||
execution_date=now(),
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/process'.format(r.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/process'.format(r.pk), {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
assert r.state == OrderRefund.REFUND_STATE_DONE
|
||||
@@ -1939,7 +1940,7 @@ def test_process_refund_overpaid_externally(client, env):
|
||||
execution_date=now(),
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/process'.format(r.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/process'.format(r.pk), {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
assert r.state == OrderRefund.REFUND_STATE_DONE
|
||||
@@ -1959,7 +1960,7 @@ def test_process_refund_invalid_state(client, env):
|
||||
execution_date=now(),
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/process'.format(r.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/process'.format(r.pk), {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
assert r.state == OrderRefund.REFUND_STATE_CANCELED
|
||||
@@ -1976,7 +1977,7 @@ def test_process_refund_mark_refunded(client, env):
|
||||
execution_date=now(),
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/process'.format(r.pk), {'action': 'r'},
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/process'.format(r.pk), {'action': 'r'},
|
||||
follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
@@ -1996,7 +1997,7 @@ def test_done_refund(client, env):
|
||||
execution_date=now(),
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/done'.format(r.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/done'.format(r.pk), {}, follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
assert r.state == OrderRefund.REFUND_STATE_DONE
|
||||
@@ -2013,7 +2014,7 @@ def test_done_refund_invalid_state(client, env):
|
||||
execution_date=now(),
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refunds/{}/done'.format(r.pk), {}, follow=True)
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refunds/{}/done'.format(r.pk), {}, follow=True)
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
r.refresh_from_db()
|
||||
assert r.state == OrderRefund.REFUND_STATE_EXTERNAL
|
||||
@@ -2024,7 +2025,7 @@ def test_confirm_payment(client, env):
|
||||
with scopes_disabled():
|
||||
p = env[2].payments.last()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/payments/{}/confirm'.format(p.pk), {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/payments/{}/confirm'.format(p.pk), {
|
||||
'amount': str(p.amount),
|
||||
'payment_date': str(now().date().isoformat()),
|
||||
}, follow=True)
|
||||
@@ -2042,7 +2043,7 @@ def test_confirm_payment_invalid_state(client, env):
|
||||
p.state = OrderPayment.PAYMENT_STATE_FAILED
|
||||
p.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/payments/{}/confirm'.format(p.pk), {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/payments/{}/confirm'.format(p.pk), {
|
||||
'amount': str(p.amount),
|
||||
'payment_date': str(now().date().isoformat()),
|
||||
}, follow=True)
|
||||
@@ -2060,7 +2061,7 @@ def test_confirm_payment_partal_amount(client, env):
|
||||
p.amount -= Decimal(5.00)
|
||||
p.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/payments/{}/confirm'.format(p.pk), {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/payments/{}/confirm'.format(p.pk), {
|
||||
'amount': str(p.amount),
|
||||
'payment_date': str(now().date().isoformat()),
|
||||
}, follow=True)
|
||||
@@ -2077,15 +2078,15 @@ def test_refund_paid_order_fully_mark_as_refunded(client, env):
|
||||
p = env[2].payments.last()
|
||||
p.confirm()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/refund')
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/refund')
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
assert doc.select("input[name$=partial_amount]")[0]["value"] == "14.00"
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '14.00',
|
||||
'start-mode': 'full',
|
||||
'start-action': 'mark_refunded'
|
||||
}, follow=True)
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '14.00',
|
||||
'start-mode': 'full',
|
||||
'start-action': 'mark_refunded',
|
||||
@@ -2111,10 +2112,10 @@ def test_refund_paid_order_fully_mark_as_pending(client, env):
|
||||
p = env[2].payments.last()
|
||||
p.confirm()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/refund')
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/refund')
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
assert doc.select("input[name$=partial_amount]")[0]["value"] == "14.00"
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '14.00',
|
||||
'start-mode': 'full',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2140,15 +2141,15 @@ def test_refund_paid_order_partially_mark_as_pending(client, env):
|
||||
p = env[2].payments.last()
|
||||
p.confirm()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/refund')
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/refund')
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
assert doc.select("input[name$=partial_amount]")[0]["value"] == "14.00"
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending'
|
||||
}, follow=True)
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2178,8 +2179,8 @@ def test_refund_propose_lower_payment(client, env):
|
||||
amount=Decimal('6.00'), provider='stripe', state=OrderPayment.PAYMENT_STATE_CONFIRMED
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/refund')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/refund')
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending'
|
||||
@@ -2199,8 +2200,8 @@ def test_refund_propose_equal_payment(client, env):
|
||||
amount=Decimal('7.00'), provider='stripe', state=OrderPayment.PAYMENT_STATE_CONFIRMED
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/refund')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/refund')
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending'
|
||||
@@ -2220,8 +2221,8 @@ def test_refund_propose_higher_payment(client, env):
|
||||
amount=Decimal('8.00'), provider='stripe', state=OrderPayment.PAYMENT_STATE_CONFIRMED
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.get('/control/event/dummy/dummy/orders/FOO/refund')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.get('/control/event/dummy/dummy/orders/ABC32/refund')
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending'
|
||||
@@ -2237,7 +2238,7 @@ def test_refund_amount_does_not_match_or_invalid(client, env):
|
||||
p = env[2].payments.last()
|
||||
p.confirm()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
resp = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
resp = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2249,7 +2250,7 @@ def test_refund_amount_does_not_match_or_invalid(client, env):
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in resp.content
|
||||
assert b'do not match the' in resp.content
|
||||
resp = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
resp = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '15.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2261,7 +2262,7 @@ def test_refund_amount_does_not_match_or_invalid(client, env):
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in resp.content
|
||||
assert b'The refund amount needs to be positive' in resp.content
|
||||
resp = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
resp = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2273,7 +2274,7 @@ def test_refund_amount_does_not_match_or_invalid(client, env):
|
||||
}, follow=True)
|
||||
assert b'alert-danger' in resp.content
|
||||
assert b'do not match the' in resp.content
|
||||
resp = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
resp = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2311,7 +2312,7 @@ def test_refund_paid_order_automatically_failed(client, env, monkeypatch):
|
||||
monkeypatch.setattr("stripe.Charge.retrieve", charge_retr)
|
||||
monkeypatch.setattr("stripe.Refund.create", refund_create)
|
||||
|
||||
r = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
r = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2359,7 +2360,7 @@ def test_refund_paid_order_automatically(client, env, monkeypatch):
|
||||
monkeypatch.setattr("stripe.Charge.retrieve", charge_retr)
|
||||
monkeypatch.setattr("stripe.Refund.create", refund_create)
|
||||
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '7.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2386,7 +2387,7 @@ def test_refund_paid_order_offsetting_to_unknown(client, env):
|
||||
p.confirm()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
|
||||
r = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
r = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '5.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2422,7 +2423,7 @@ def test_refund_paid_order_offsetting_to_wrong_currency(client, env):
|
||||
)
|
||||
o.positions.create(price=5, item=ticket2)
|
||||
|
||||
r = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
r = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '5.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2450,7 +2451,7 @@ def test_refund_paid_order_offsetting(client, env):
|
||||
total=5, locale='en'
|
||||
)
|
||||
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '5.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2492,7 +2493,7 @@ def test_refund_prevent_duplicate_submit(client, env):
|
||||
)
|
||||
env[2].refunds.create(provider="manual", amount=Decimal("2.00"), state=OrderRefund.REFUND_STATE_CREATED)
|
||||
|
||||
r = client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
r = client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '5.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2514,7 +2515,7 @@ def test_refund_paid_order_giftcard(client, env):
|
||||
p.confirm()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/refund', {
|
||||
client.post('/control/event/dummy/dummy/orders/ABC32/refund', {
|
||||
'start-partial_amount': '5.00',
|
||||
'start-mode': 'partial',
|
||||
'start-action': 'mark_pending',
|
||||
@@ -2582,7 +2583,7 @@ def test_delete_cancellation_request(client, env):
|
||||
refund_as_giftcard=True
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/cancellationrequests/{}/delete'.format(r.pk), {},
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/cancellationrequests/{}/delete'.format(r.pk), {},
|
||||
follow=True)
|
||||
assert 'alert-success' in response.content.decode()
|
||||
assert not env[2].cancellation_requests.exists()
|
||||
@@ -2600,10 +2601,10 @@ def test_approve_cancellation_request(client, env):
|
||||
refund_as_giftcard=True
|
||||
)
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
response = client.get('/control/event/dummy/dummy/orders/FOO/transition?status=c&req={}'.format(r.pk), {})
|
||||
response = client.get('/control/event/dummy/dummy/orders/ABC32/transition?status=c&req={}'.format(r.pk), {})
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
assert doc.select('input[name=cancellation_fee]')[0]['value'] == '4.00'
|
||||
response = client.post('/control/event/dummy/dummy/orders/FOO/transition?req={}'.format(r.pk), {
|
||||
response = client.post('/control/event/dummy/dummy/orders/ABC32/transition?req={}'.format(r.pk), {
|
||||
'status': 'c',
|
||||
'cancellation_fee': '4.00'
|
||||
}, follow=True)
|
||||
|
||||
Reference in New Issue
Block a user