mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
@@ -103,6 +103,10 @@ class QuotaTestCase(BaseQuotaTestCase):
|
||||
|
||||
order.expires = now() - timedelta(days=3)
|
||||
order.save()
|
||||
self.assertEqual(self.item1.check_quotas(), (Quota.AVAILABILITY_ORDERED, 0))
|
||||
|
||||
order.status = Order.STATUS_EXPIRED
|
||||
order.save()
|
||||
self.assertEqual(self.item1.check_quotas(), (Quota.AVAILABILITY_OK, 1))
|
||||
|
||||
def test_ordered_multi_quota(self):
|
||||
@@ -234,6 +238,7 @@ class OrderTestCase(BaseQuotaTestCase):
|
||||
self.assertEqual(self.order.status, Order.STATUS_PAID)
|
||||
|
||||
def test_paid_expired_available(self):
|
||||
self.order.status = Order.STATUS_EXPIRED
|
||||
self.order.expires = now() - timedelta(days=2)
|
||||
self.order.save()
|
||||
mark_order_paid(self.order)
|
||||
@@ -241,6 +246,7 @@ class OrderTestCase(BaseQuotaTestCase):
|
||||
self.assertEqual(self.order.status, Order.STATUS_PAID)
|
||||
|
||||
def test_paid_expired_partial(self):
|
||||
self.order.status = Order.STATUS_EXPIRED
|
||||
self.order.expires = now() - timedelta(days=2)
|
||||
self.order.save()
|
||||
self.quota.size = 1
|
||||
@@ -255,6 +261,7 @@ class OrderTestCase(BaseQuotaTestCase):
|
||||
|
||||
def test_paid_expired_unavailable(self):
|
||||
self.order.expires = now() - timedelta(days=2)
|
||||
self.order.status = Order.STATUS_EXPIRED
|
||||
self.order.save()
|
||||
self.quota.size = 0
|
||||
self.quota.save()
|
||||
@@ -266,6 +273,13 @@ class OrderTestCase(BaseQuotaTestCase):
|
||||
self.order = Order.objects.get(id=self.order.id)
|
||||
self.assertIn(self.order.status, (Order.STATUS_PENDING, Order.STATUS_EXPIRED))
|
||||
|
||||
def test_paid_after_deadline_but_not_expired(self):
|
||||
self.order.expires = now() - timedelta(days=2)
|
||||
self.order.save()
|
||||
mark_order_paid(self.order)
|
||||
self.order = Order.objects.get(identity=self.order.identity)
|
||||
self.assertEqual(self.order.status, Order.STATUS_PAID)
|
||||
|
||||
def test_paid_expired_unavailable_force(self):
|
||||
self.order.expires = now() - timedelta(days=2)
|
||||
self.order.save()
|
||||
|
||||
@@ -3,9 +3,9 @@ from datetime import timedelta
|
||||
import pytest
|
||||
from django.utils.timezone import now
|
||||
|
||||
from pretix.base.models import Event, Organizer
|
||||
from pretix.base.models import Event, Order, Organizer
|
||||
from pretix.base.payment import FreeOrderProvider
|
||||
from pretix.base.services.orders import _create_order
|
||||
from pretix.base.services.orders import _create_order, expire_orders
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -42,3 +42,46 @@ def test_expiry_last(event):
|
||||
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
|
||||
|
||||
@@ -87,7 +87,7 @@ def test_order_transition_to_paid_in_time_success(client, env):
|
||||
@pytest.mark.django_db
|
||||
def test_order_transition_to_paid_expired_quota_left(client, env):
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
o.expires = now() - timedelta(days=2)
|
||||
o.status = Order.STATUS_EXPIRED
|
||||
o.save()
|
||||
q = Quota.objects.create(event=env[0], size=10)
|
||||
q.items.add(env[3])
|
||||
@@ -103,7 +103,7 @@ def test_order_transition_to_paid_expired_quota_left(client, env):
|
||||
@pytest.mark.django_db
|
||||
def test_order_transition_to_paid_expired_quota_full(client, env):
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
o.expires = now() - timedelta(days=2)
|
||||
o.status = Order.STATUS_EXPIRED
|
||||
o.save()
|
||||
q = Quota.objects.create(event=env[0], size=0)
|
||||
q.items.add(env[3])
|
||||
@@ -112,7 +112,7 @@ def test_order_transition_to_paid_expired_quota_full(client, env):
|
||||
'status': 'p'
|
||||
})
|
||||
o = Order.objects.get(id=env[2].id)
|
||||
assert o.status == Order.STATUS_PENDING
|
||||
assert o.status == Order.STATUS_EXPIRED
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
Reference in New Issue
Block a user