mirror of
https://github.com/pretix/pretix.git
synced 2026-05-06 15:24:02 +00:00
Add a simple test mode (#1181)
- [x] Provide data model and configuration toggle - [x] Allow to delete individual test orders - [x] Add tests - [x] Add a prominent warning message to the backend if test mode orders exist (even though test mode is off), as this leads to wrong statistics - [x] Decide if and how to generate invoices for test orders as invoice numbers cannot be repeated or should not have gaps. - [x] Decide if and how we expose test orders through the API, since our difference pull mechanism relies on the fact that orders cannot be deleted. - [x] Decide if and how we want to couple test modes of payment providers? - [ ] pretix.eu: Ignore test orders for billing - [ ] Adjust payment providers: Mollie, bitpay, cash, fakepayment, sepadebit 
This commit is contained in:
@@ -126,6 +126,15 @@ def test_order_list(client, env):
|
||||
response = client.get('/control/event/dummy/dummy/orders/?question=%d&answer=%d' % (q.pk, qo2.pk))
|
||||
assert 'FOO' not in response.rendered_content
|
||||
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=testmode')
|
||||
assert 'FOO' not in response.rendered_content
|
||||
assert 'TEST MODE' not in response.rendered_content
|
||||
env[2].testmode = True
|
||||
env[2].save()
|
||||
response = client.get('/control/event/dummy/dummy/orders/?status=testmode')
|
||||
assert 'FOO' in response.rendered_content
|
||||
assert 'TEST MODE' in response.rendered_content
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_detail(client, env):
|
||||
@@ -134,6 +143,16 @@ def test_order_detail(client, env):
|
||||
assert 'Early-bird' in response.rendered_content
|
||||
assert 'Peter' in response.rendered_content
|
||||
assert 'Lukas Gelöscht' in response.rendered_content
|
||||
assert 'TEST MODE' not in response.rendered_content
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
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/')
|
||||
assert 'TEST MODE' in response.rendered_content
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -260,6 +279,26 @@ def test_order_deny(client, env):
|
||||
assert o.require_approval
|
||||
|
||||
|
||||
@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)
|
||||
assert 'alert-danger' in res.rendered_content
|
||||
assert 'Only orders created in test mode can be deleted' in res.rendered_content
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/delete', {}, follow=True)
|
||||
assert Order.objects.get(id=env[2].id)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_order_delete(client, env):
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
o.testmode = True
|
||||
o.save()
|
||||
client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
client.post('/control/event/dummy/dummy/orders/FOO/delete', {}, follow=True)
|
||||
assert not Order.objects.filter(id=env[2].id).exists()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@pytest.mark.parametrize("process", [
|
||||
# (Old status, new status, success expected)
|
||||
|
||||
Reference in New Issue
Block a user