mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Support for external gift cards (#2912)
This commit is contained in:
@@ -788,7 +788,18 @@ class VoucherTestCase(BaseQuotaTestCase):
|
||||
self.assertTrue(v.is_in_cart())
|
||||
self.assertFalse(v.is_ordered())
|
||||
|
||||
order = perform_order(event=self.event.id, payment_provider='free', positions=[cart.id])
|
||||
order = perform_order(
|
||||
event=self.event.id,
|
||||
positions=[cart.id],
|
||||
payments=[{
|
||||
"id": "test0",
|
||||
"provider": "free",
|
||||
"max_value": None,
|
||||
"min_value": None,
|
||||
"multi_use_supported": False,
|
||||
"info_data": {},
|
||||
}],
|
||||
)
|
||||
v.refresh_from_db()
|
||||
self.assertFalse(v.is_active())
|
||||
self.assertFalse(v.is_in_cart())
|
||||
@@ -797,10 +808,23 @@ class VoucherTestCase(BaseQuotaTestCase):
|
||||
# assert that the voucher cannot be reused
|
||||
cart = CartPosition.objects.create(event=self.event, item=self.item1, price=self.item1.default_price,
|
||||
expires=now() + timedelta(days=3), voucher=v)
|
||||
self.assertRaises(OrderError, perform_order, event=self.event.id, payment_provider='free', positions=[cart.id])
|
||||
self.assertRaises(
|
||||
OrderError,
|
||||
perform_order,
|
||||
event=self.event.id,
|
||||
positions=[cart.id],
|
||||
payments=[{
|
||||
"id": "test0",
|
||||
"provider": "free",
|
||||
"max_value": None,
|
||||
"min_value": None,
|
||||
"multi_use_supported": False,
|
||||
"info_data": {},
|
||||
}],
|
||||
)
|
||||
|
||||
# assert that the voucher can be re-used after cancelling the successful order
|
||||
cancel_order(order)
|
||||
cancel_order(order['order_id'])
|
||||
v.refresh_from_db()
|
||||
self.assertTrue(v.is_active())
|
||||
self.assertFalse(v.is_in_cart())
|
||||
@@ -808,7 +832,18 @@ class VoucherTestCase(BaseQuotaTestCase):
|
||||
|
||||
cart = CartPosition.objects.create(event=self.event, item=self.item1, price=self.item1.default_price,
|
||||
expires=now() + timedelta(days=3), voucher=v)
|
||||
perform_order(event=self.event.id, payment_provider='free', positions=[cart.id])
|
||||
perform_order(
|
||||
event=self.event.id,
|
||||
positions=[cart.id],
|
||||
payments=[{
|
||||
"id": "test0",
|
||||
"provider": "free",
|
||||
"max_value": None,
|
||||
"min_value": None,
|
||||
"multi_use_supported": False,
|
||||
"info_data": {},
|
||||
}],
|
||||
)
|
||||
|
||||
@classscope(attr='o')
|
||||
def test_voucher_applicability_quota(self):
|
||||
@@ -2037,7 +2072,8 @@ class EventTest(TestCase):
|
||||
"and": [
|
||||
{"isBefore": [{"var": "now"}, {"buildTime": ["date_from"]}, None]},
|
||||
{"inList": [{"var": "product"}, {"objectList": [{"lookup": ["product", str(i1new.pk), "Text"]}]}]},
|
||||
{"inList": [{"var": "variation"}, {"objectList": [{"lookup": ["variation", str(i1new.variations.get().pk), "Text"]}]}]}
|
||||
{"inList": [{"var": "variation"},
|
||||
{"objectList": [{"lookup": ["variation", str(i1new.variations.get().pk), "Text"]}]}]}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2122,7 +2158,8 @@ class EventTest(TestCase):
|
||||
date_from=now()
|
||||
)
|
||||
q = Quota.objects.create(event=event, name='Quota', size=2)
|
||||
item = Item.objects.create(event=event, name='Early-bird ticket', default_price=0, active=True, available_until=now() - timedelta(days=1))
|
||||
item = Item.objects.create(event=event, name='Early-bird ticket', default_price=0, active=True,
|
||||
available_until=now() - timedelta(days=1))
|
||||
q.items.add(item)
|
||||
assert Event.annotated(Event.objects).first().active_quotas == []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user