forked from CGM_Public/pretix_original
Added basic tests for the orders view
This commit is contained in:
83
src/tests/control/test_orders.py
Normal file
83
src/tests/control/test_orders.py
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
from datetime import timedelta
|
||||||
|
from decimal import Decimal
|
||||||
|
|
||||||
|
from django.utils.timezone import now
|
||||||
|
import pytest
|
||||||
|
from pretix.base.models import Event, Organizer, User, EventPermission, Order, OrganizerPermission, Item, OrderPosition
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def env():
|
||||||
|
o = Organizer.objects.create(name='Dummy', slug='dummy')
|
||||||
|
event = Event.objects.create(
|
||||||
|
organizer=o, name='Dummy', slug='dummy',
|
||||||
|
date_from=now(), plugins='pretix.plugins.banktransfer'
|
||||||
|
)
|
||||||
|
user = User.objects.create_user('dummy@dummy.dummy', 'dummy@dummy.dummy', 'dummy')
|
||||||
|
EventPermission.objects.create(
|
||||||
|
event=event,
|
||||||
|
user=user,
|
||||||
|
can_view_orders=True,
|
||||||
|
can_change_orders=True
|
||||||
|
)
|
||||||
|
o = Order.objects.create(
|
||||||
|
code='FOO', event=event,
|
||||||
|
user=user, status=Order.STATUS_PENDING,
|
||||||
|
datetime=now(), expires=now() + timedelta(days=10),
|
||||||
|
total=0, payment_provider='banktransfer'
|
||||||
|
)
|
||||||
|
ticket = Item.objects.create(event=event, name='Early-bird ticket',
|
||||||
|
category=None, default_price=23,
|
||||||
|
admission=True)
|
||||||
|
event.settings.set('attendee_names_asked', True)
|
||||||
|
OrderPosition.objects.create(
|
||||||
|
order=o,
|
||||||
|
item=ticket,
|
||||||
|
variation=None,
|
||||||
|
price=Decimal("14"),
|
||||||
|
attendee_name="Peter"
|
||||||
|
)
|
||||||
|
return event, user, o
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_order_list(client, env):
|
||||||
|
client.login(identifier='dummy@dummy.dummy', password='dummy')
|
||||||
|
response = client.get('/control/event/dummy/dummy/orders/')
|
||||||
|
assert 'FOO' in response.rendered_content
|
||||||
|
response = client.get('/control/event/dummy/dummy/orders/?user=peter')
|
||||||
|
assert 'FOO' not in response.rendered_content
|
||||||
|
response = client.get('/control/event/dummy/dummy/orders/?user=dummy')
|
||||||
|
assert 'FOO' in response.rendered_content
|
||||||
|
response = client.get('/control/event/dummy/dummy/orders/?status=p')
|
||||||
|
assert 'FOO' not in response.rendered_content
|
||||||
|
response = client.get('/control/event/dummy/dummy/orders/?status=n')
|
||||||
|
assert 'FOO' in response.rendered_content
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_order_detail(client, env):
|
||||||
|
client.login(identifier='dummy@dummy.dummy', password='dummy')
|
||||||
|
response = client.get('/control/event/dummy/dummy/orders/FOO/')
|
||||||
|
assert 'Early-bird' in response.rendered_content
|
||||||
|
assert 'Peter' in response.rendered_content
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_order_transition_cancel(client, env):
|
||||||
|
client.login(identifier='dummy@dummy.dummy', password='dummy')
|
||||||
|
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||||
|
'status': 'c'
|
||||||
|
})
|
||||||
|
o = Order.objects.current.get(identity=env[2].identity)
|
||||||
|
assert o.status == Order.STATUS_CANCELLED
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_order_transition_to_paid_success(client, env):
|
||||||
|
client.login(identifier='dummy@dummy.dummy', password='dummy')
|
||||||
|
client.post('/control/event/dummy/dummy/orders/FOO/transition', {
|
||||||
|
'status': 'p'
|
||||||
|
})
|
||||||
|
o = Order.objects.current.get(identity=env[2].identity)
|
||||||
|
assert o.status == Order.STATUS_PAID
|
||||||
Reference in New Issue
Block a user