forked from CGM_Public/pretix_original
New implementation of sales channels (#4111)
Co-authored-by: Martin Gross <gross@rami.io>
This commit is contained in:
@@ -74,7 +74,8 @@ def dashboard_env():
|
||||
code='FOO', event=event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PAID,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=33, locale='en'
|
||||
total=33, locale='en',
|
||||
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
order=order_paid,
|
||||
@@ -108,7 +109,8 @@ def test_dashboard_pending_not_count(dashboard_env):
|
||||
code='BAR', event=dashboard_env[0], email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=23, locale='en'
|
||||
total=23, locale='en',
|
||||
sales_channel=dashboard_env[0].organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
order=order_pending,
|
||||
@@ -161,25 +163,29 @@ def checkin_list_env():
|
||||
code='PENDING', event=event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=23, locale='en'
|
||||
total=23, locale='en',
|
||||
sales_channel=orga.sales_channels.get(identifier="web"),
|
||||
)
|
||||
order_a1 = Order.objects.create(
|
||||
code='A1', event=event, email='a1dummy@dummy.test',
|
||||
status=Order.STATUS_PAID,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=33, locale='en'
|
||||
total=33, locale='en',
|
||||
sales_channel=orga.sales_channels.get(identifier="web"),
|
||||
)
|
||||
order_a2 = Order.objects.create(
|
||||
code='A2', event=event, email='a2dummy@dummy.test',
|
||||
status=Order.STATUS_PAID,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=23, locale='en'
|
||||
total=23, locale='en',
|
||||
sales_channel=orga.sales_channels.get(identifier="web"),
|
||||
)
|
||||
order_a3 = Order.objects.create(
|
||||
code='A3', event=event, email='a3dummy@dummy.test',
|
||||
status=Order.STATUS_PAID,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=23, locale='en'
|
||||
total=23, locale='en',
|
||||
sales_channel=orga.sales_channels.get(identifier="web"),
|
||||
)
|
||||
|
||||
# order position
|
||||
@@ -381,19 +387,22 @@ def checkin_list_with_addon_env():
|
||||
code='PENDING', event=event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=23, locale='en'
|
||||
total=23, locale='en',
|
||||
sales_channel=orga.sales_channels.get(identifier="web"),
|
||||
)
|
||||
order_a1 = Order.objects.create(
|
||||
code='A1', event=event, email='a1dummy@dummy.test',
|
||||
status=Order.STATUS_PAID,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=33, locale='en'
|
||||
total=33, locale='en',
|
||||
sales_channel=orga.sales_channels.get(identifier="web"),
|
||||
)
|
||||
order_a2 = Order.objects.create(
|
||||
code='A2', event=event, email='a2dummy@dummy.test',
|
||||
status=Order.STATUS_PAID,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=23, locale='en'
|
||||
total=23, locale='en',
|
||||
sales_channel=orga.sales_channels.get(identifier="web"),
|
||||
)
|
||||
|
||||
# order position
|
||||
|
||||
@@ -68,6 +68,7 @@ def order(event, customer):
|
||||
email='admin@localhost',
|
||||
datetime=now() - timedelta(days=3),
|
||||
expires=now() + timedelta(days=11),
|
||||
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||
total=Decimal("23"),
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
|
||||
@@ -322,13 +322,15 @@ class EventsTest(SoupTest):
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en', testmode=True
|
||||
total=14, locale='en', testmode=True,
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
o2 = Order.objects.create(
|
||||
code='FOO2', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
self.event1.testmode = True
|
||||
self.event1.save()
|
||||
@@ -346,13 +348,15 @@ class EventsTest(SoupTest):
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en', testmode=True
|
||||
total=14, locale='en', testmode=True,
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
o2 = Order.objects.create(
|
||||
code='FOO2', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
self.event1.testmode = True
|
||||
self.event1.save()
|
||||
@@ -1267,12 +1271,14 @@ class EventDeletionTest(SoupTest):
|
||||
assert self.orga1.events.exists()
|
||||
|
||||
def test_delete_orders(self):
|
||||
Order.objects.create(
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now(),
|
||||
total=14, locale='en'
|
||||
)
|
||||
with scopes_disabled():
|
||||
Order.objects.create(
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now(),
|
||||
total=14, locale='en',
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
self.post_doc('/control/event/ccc/30c3/delete/', {
|
||||
'user_pw': 'dummy',
|
||||
'slug': '30c3'
|
||||
|
||||
@@ -133,7 +133,8 @@ def test_card_detail_view_transact_revert_refund(organizer, admin_user, gift_car
|
||||
code='FOO', event=event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_CANCELED,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
o.payments.create(
|
||||
amount=o.total, provider='banktransfer', state=OrderPayment.PAYMENT_STATE_CONFIRMED
|
||||
|
||||
@@ -225,6 +225,7 @@ class QuestionsTest(ItemFormTest):
|
||||
o = Order.objects.create(code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING, datetime=now(),
|
||||
expires=now() + datetime.timedelta(days=10),
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
total=14, locale='en')
|
||||
op = OrderPosition.objects.create(order=o, item=item1, variation=None, price=Decimal("14"),
|
||||
attendee_name_parts={'full_name': "Peter"})
|
||||
@@ -634,6 +635,7 @@ class ItemsTest(ItemFormTest):
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
total=14, locale='en'
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
@@ -679,7 +681,7 @@ class ItemsTest(ItemFormTest):
|
||||
assert i_new.require_voucher == i_old.require_voucher
|
||||
assert i_new.hide_without_voucher == i_old.hide_without_voucher
|
||||
assert i_new.allow_cancel == i_old.allow_cancel
|
||||
assert i_new.sales_channels == i_old.sales_channels
|
||||
assert set(i_new.limit_sales_channels.all()) == set(i_old.limit_sales_channels.all())
|
||||
assert i_new.meta_data == i_old.meta_data == {"Foo": "Bar"}
|
||||
assert set(i_new.questions.all()) == set(i_old.questions.all())
|
||||
assert set([str(v.value) for v in i_new.variations.all()]) == set([str(v.value) for v in i_old.variations.all()])
|
||||
|
||||
@@ -74,7 +74,8 @@ def env():
|
||||
code='FOO', event=event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
o.payments.create(
|
||||
amount=o.total, provider='banktransfer', state=OrderPayment.PAYMENT_STATE_PENDING
|
||||
@@ -873,6 +874,7 @@ def test_order_extend_expired_seat_taken(client, env):
|
||||
code='BAR', event=env[0], email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=env[0].organizer.sales_channels.get(identifier="web"),
|
||||
total=14, locale='en'
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
@@ -1103,6 +1105,7 @@ def test_order_mark_paid_expired_seat_taken(client, env):
|
||||
code='BAR', event=env[0], email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=env[0].organizer.sales_channels.get(identifier="web"),
|
||||
total=14, locale='en'
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
@@ -1263,6 +1266,7 @@ class OrderChangeTests(SoupTest):
|
||||
code='FOO', event=self.event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=self.event.organizer.sales_channels.get(identifier="web"),
|
||||
total=Decimal('46.00'),
|
||||
)
|
||||
self.tr7 = self.event.tax_rules.create(rate=Decimal('7.00'))
|
||||
@@ -2216,6 +2220,7 @@ def test_refund_paid_order_offsetting_to_wrong_currency(client, env):
|
||||
code='BAZ', event=event2, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=event2.organizer.sales_channels.get(identifier="web"),
|
||||
total=5, locale='en'
|
||||
)
|
||||
o.positions.create(price=5, item=ticket2)
|
||||
@@ -2244,6 +2249,7 @@ def test_refund_paid_order_offsetting(client, env):
|
||||
code='BAZ', event=env[0], email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=env[0].organizer.sales_channels.get(identifier="web"),
|
||||
total=5, locale='en'
|
||||
)
|
||||
|
||||
@@ -2284,6 +2290,7 @@ def test_refund_prevent_duplicate_submit(client, env):
|
||||
code='BAZ', event=env[0], email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=env[0].organizer.sales_channels.get(identifier="web"),
|
||||
total=5, locale='en'
|
||||
)
|
||||
env[2].refunds.create(provider="manual", amount=Decimal("2.00"), state=OrderRefund.REFUND_STATE_CREATED)
|
||||
|
||||
@@ -73,6 +73,7 @@ def order1(env):
|
||||
code='FOO', event=env[0], email='foo@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=env[0].organizer.sales_channels.get(identifier="web"),
|
||||
total=14, locale='en'
|
||||
)
|
||||
o.payments.create(
|
||||
@@ -94,6 +95,7 @@ def order2(env):
|
||||
code='BAR', event=env[0], email='bar@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
sales_channel=env[0].organizer.sales_channels.get(identifier="web"),
|
||||
total=14, locale='en'
|
||||
)
|
||||
o.payments.create(
|
||||
|
||||
@@ -323,3 +323,60 @@ class OrganizerTest(SoupTest):
|
||||
p = self.orga1.sso_providers.get()
|
||||
assert p.configuration['scope'] == 'openid email'
|
||||
assert p.configuration['provider_config'] == conf
|
||||
|
||||
def test_sales_channel_add_edit_remove(self):
|
||||
doc = self.post_doc(
|
||||
'/control/organizer/%s/channel/add?type=api' % self.orga1.slug,
|
||||
{
|
||||
'label_0': 'API 1',
|
||||
'identifier': 'custom',
|
||||
},
|
||||
follow=True
|
||||
)
|
||||
assert not doc.select('.has-error, .alert-danger')
|
||||
with scopes_disabled():
|
||||
assert str(self.orga1.sales_channels.get(identifier="api.custom").label) == "API 1"
|
||||
|
||||
doc = self.post_doc(
|
||||
'/control/organizer/%s/channel/api.custom/edit' % self.orga1.slug,
|
||||
{
|
||||
'label_0': 'API 2',
|
||||
},
|
||||
follow=True
|
||||
)
|
||||
assert not doc.select('.has-error, .alert-danger')
|
||||
with scopes_disabled():
|
||||
assert str(self.orga1.sales_channels.get(identifier="api.custom").label) == "API 2"
|
||||
|
||||
doc = self.post_doc(
|
||||
'/control/organizer/%s/channel/api.custom/delete' % self.orga1.slug,
|
||||
{},
|
||||
follow=True
|
||||
)
|
||||
assert not doc.select('.has-error, .alert-danger')
|
||||
with scopes_disabled():
|
||||
assert not self.orga1.sales_channels.filter(identifier="api.custom").exists()
|
||||
|
||||
def test_sales_channel_add_invalid_type(self):
|
||||
doc = self.post_doc(
|
||||
'/control/organizer/%s/channel/add?type=web' % self.orga1.slug,
|
||||
{
|
||||
'label_0': 'API 1',
|
||||
'identifier': 'custom',
|
||||
},
|
||||
follow=True
|
||||
)
|
||||
assert doc.select('.large-link-group')
|
||||
|
||||
def test_sales_channel_delete_invalid(self):
|
||||
doc = self.post_doc(
|
||||
'/control/organizer/%s/channel/web/delete' % self.orga1.slug,
|
||||
{
|
||||
'label_0': 'API 1',
|
||||
'identifier': 'custom',
|
||||
},
|
||||
follow=True
|
||||
)
|
||||
assert doc.select('.alert-danger')
|
||||
with scopes_disabled():
|
||||
assert self.orga1.sales_channels.filter(identifier="web").exists()
|
||||
|
||||
@@ -55,6 +55,7 @@ def env():
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=0,
|
||||
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
Team.objects.create(pk=1, organizer=o)
|
||||
return event, user, o
|
||||
@@ -536,6 +537,10 @@ organizer_permission_urls = [
|
||||
("can_change_organizer_settings", "organizer/dummy/property/add", 200),
|
||||
("can_change_organizer_settings", "organizer/dummy/property/1/edit", 404),
|
||||
("can_change_organizer_settings", "organizer/dummy/property/1/delete", 404),
|
||||
("can_change_organizer_settings", "organizer/dummy/channels", 200),
|
||||
("can_change_organizer_settings", "organizer/dummy/channel/add", 200),
|
||||
("can_change_organizer_settings", "organizer/dummy/channel/web/edit", 200),
|
||||
("can_change_organizer_settings", "organizer/dummy/channel/web/delete", 200),
|
||||
("can_change_organizer_settings", "organizer/dummy/membershiptypes", 200),
|
||||
("can_change_organizer_settings", "organizer/dummy/membershiptype/add", 200),
|
||||
("can_change_organizer_settings", "organizer/dummy/membershiptype/1/edit", 404),
|
||||
|
||||
@@ -112,7 +112,8 @@ def test_typeahead(organizer, admin_user, client, gift_card):
|
||||
o = Order.objects.create(
|
||||
code='FOO', event=event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING, datetime=now(), expires=now() + timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=event.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
ticket = event.items.create(name='Early-bird ticket', category=None, default_price=23, admission=True, personalized=True)
|
||||
op = o.positions.create(item=ticket, price=Decimal("14"))
|
||||
|
||||
@@ -52,7 +52,8 @@ class OrderSearchTest(SoupTest):
|
||||
code='FO1A', event=self.event1, email='dummy1@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
InvoiceAddress.objects.create(order=o1, company="Test Ltd.", name_parts={'full_name': "Peter Miller", "_scheme": "full"})
|
||||
ticket1 = Item.objects.create(event=self.event1, name='Early-bird ticket',
|
||||
@@ -71,7 +72,8 @@ class OrderSearchTest(SoupTest):
|
||||
code='FO2', event=self.event2, email='dummy2@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.event2.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
ticket2 = Item.objects.create(event=self.event1, name='Early-bird ticket',
|
||||
category=None, default_price=23,
|
||||
@@ -192,7 +194,8 @@ class PaymentSearchTest(SoupTest):
|
||||
code='FO1A', event=self.event1, email='dummy1@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.event1.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
InvoiceAddress.objects.create(order=o1, company="Test Ltd.", name_parts={'full_name': "Peter Miller", "_scheme": "full"})
|
||||
ticket1 = Item.objects.create(event=self.event1, name='Early-bird ticket',
|
||||
@@ -246,7 +249,8 @@ class PaymentSearchTest(SoupTest):
|
||||
code='FO2', event=self.event2, email='dummy2@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=15, locale='en'
|
||||
total=15, locale='en',
|
||||
sales_channel=self.event2.organizer.sales_channels.get(identifier="web"),
|
||||
)
|
||||
ticket2 = Item.objects.create(event=self.event1, name='Early-bird ticket',
|
||||
category=None, default_price=23,
|
||||
|
||||
@@ -66,7 +66,8 @@ class EventShredderTest(SoupTest):
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now(),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.orga1.sales_channels.get(identifier="web"),
|
||||
)
|
||||
|
||||
self.client.login(email='dummy@dummy.dummy', password='dummy')
|
||||
|
||||
@@ -176,7 +176,8 @@ class SubEventsTest(SoupTest):
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.orga1.sales_channels.get(identifier="web"),
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
order=o,
|
||||
@@ -755,7 +756,8 @@ class SubEventsTest(SoupTest):
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en'
|
||||
total=14, locale='en',
|
||||
sales_channel=self.orga1.sales_channels.get(identifier="web"),
|
||||
)
|
||||
OrderPosition.objects.create(
|
||||
order=o,
|
||||
|
||||
@@ -116,6 +116,7 @@ class TaxRateFormTest(SoupTest):
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=14, locale='en',
|
||||
sales_channel=self.orga1.sales_channels.get(identifier="web"),
|
||||
)
|
||||
o.fees.create(fee_type=OrderFee.FEE_TYPE_PAYMENT, value=Decimal('0.25'), tax_rate=Decimal('19.00'),
|
||||
tax_value=Decimal('0.05'), tax_rule=tr)
|
||||
@@ -135,7 +136,8 @@ class TaxRateFormTest(SoupTest):
|
||||
code='FOO', event=self.event1, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PENDING,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
total=12, locale='en'
|
||||
total=12, locale='en',
|
||||
sales_channel=self.orga1.sales_channels.get(identifier="web"),
|
||||
)
|
||||
o.positions.create(
|
||||
item=i, price=12, tax_rule=tr, tax_rate=19, tax_value=12 - 12 / 1.19
|
||||
|
||||
@@ -70,6 +70,7 @@ def order(item):
|
||||
o = Order.objects.create(event=item.event, status=Order.STATUS_PENDING,
|
||||
expires=now() + datetime.timedelta(hours=1),
|
||||
total=13, code='DUMMY', email='dummy@dummy.test',
|
||||
sales_channel=item.event.organizer.sales_channels.get(identifier="web"),
|
||||
datetime=now())
|
||||
OrderPosition.objects.create(order=o, item=item, price=13)
|
||||
p1 = o.payments.create(
|
||||
|
||||
@@ -744,6 +744,7 @@ class VoucherFormTest(SoupTestMixin, TransactionTestCase):
|
||||
code='DEDUP', event=self.event, email='dummy@dummy.test',
|
||||
status=Order.STATUS_PAID,
|
||||
datetime=now(), expires=now() + datetime.timedelta(days=10),
|
||||
sales_channel=self.orga.sales_channels.get(identifier="web"),
|
||||
total=0, locale='en'
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user