mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
88 lines
3.0 KiB
Python
88 lines
3.0 KiB
Python
from datetime import timedelta
|
|
|
|
import pytest
|
|
from django.utils.timezone import now
|
|
|
|
from pretix.base.models import Event, Order, Organizer
|
|
from pretix.base.payment import FreeOrderProvider
|
|
from pretix.base.services.orders import _create_order, expire_orders
|
|
|
|
|
|
@pytest.fixture
|
|
def event():
|
|
o = Organizer.objects.create(name='Dummy', slug='dummy')
|
|
event = Event.objects.create(
|
|
organizer=o, name='Dummy', slug='dummy',
|
|
date_from=now()
|
|
)
|
|
return event
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_expiry_days(event):
|
|
today = now()
|
|
event.settings.set('payment_term_days', 5)
|
|
order = _create_order(event, email='dummy@example.org', positions=[],
|
|
dt=today, payment_provider=FreeOrderProvider(event),
|
|
locale='de')
|
|
assert (order.expires - today).days == 5
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_expiry_last(event):
|
|
today = now()
|
|
event.settings.set('payment_term_days', 5)
|
|
event.settings.set('payment_term_last', now() + timedelta(days=3))
|
|
order = _create_order(event, email='dummy@example.org', positions=[],
|
|
dt=today, payment_provider=FreeOrderProvider(event),
|
|
locale='de')
|
|
assert (order.expires - today).days == 3
|
|
event.settings.set('payment_term_last', now() + timedelta(days=7))
|
|
order = _create_order(event, email='dummy@example.org', positions=[],
|
|
dt=today, payment_provider=FreeOrderProvider(event),
|
|
locale='de')
|
|
assert (order.expires - today).days == 5
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_expiring(event):
|
|
o1 = Order.objects.create(
|
|
code='FOO', event=event, email='dummy@dummy.test',
|
|
status=Order.STATUS_PENDING,
|
|
datetime=now(), expires=now() + timedelta(days=10),
|
|
total=0, payment_provider='banktransfer'
|
|
)
|
|
o2 = Order.objects.create(
|
|
code='FO2', event=event, email='dummy@dummy.test',
|
|
status=Order.STATUS_PENDING,
|
|
datetime=now(), expires=now() - timedelta(days=10),
|
|
total=0, payment_provider='banktransfer'
|
|
)
|
|
expire_orders(None)
|
|
o1 = Order.objects.get(id=o1.id)
|
|
assert o1.status == Order.STATUS_PENDING
|
|
o2 = Order.objects.get(id=o2.id)
|
|
assert o2.status == Order.STATUS_EXPIRED
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_expiring_auto_disabled(event):
|
|
event.settings.set('payment_term_expire_automatically', False)
|
|
o1 = Order.objects.create(
|
|
code='FOO', event=event, email='dummy@dummy.test',
|
|
status=Order.STATUS_PENDING,
|
|
datetime=now(), expires=now() + timedelta(days=10),
|
|
total=0, payment_provider='banktransfer'
|
|
)
|
|
o2 = Order.objects.create(
|
|
code='FO2', event=event, email='dummy@dummy.test',
|
|
status=Order.STATUS_PENDING,
|
|
datetime=now(), expires=now() - timedelta(days=10),
|
|
total=0, payment_provider='banktransfer'
|
|
)
|
|
expire_orders(None)
|
|
o1 = Order.objects.get(id=o1.id)
|
|
assert o1.status == Order.STATUS_PENDING
|
|
o2 = Order.objects.get(id=o2.id)
|
|
assert o2.status == Order.STATUS_PENDING
|