Support for external gift cards (#2912)

This commit is contained in:
Raphael Michel
2022-11-23 14:52:56 +01:00
committed by GitHub
parent d3589696d7
commit 9624b1c505
24 changed files with 1521 additions and 523 deletions

View File

@@ -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 == []