forked from CGM_Public/pretix_original
tests
This commit is contained in:
@@ -2114,8 +2114,8 @@ class OrderChangeManager:
|
|||||||
or (a.variation and not a.variation.all_sales_channels and not a.variation.limit_sales_channels.contains(self.order.sales_channel))
|
or (a.variation and not a.variation.all_sales_channels and not a.variation.limit_sales_channels.contains(self.order.sales_channel))
|
||||||
or a.item.unavailability_reason(has_voucher=True, subevent=a.subevent)
|
or a.item.unavailability_reason(has_voucher=True, subevent=a.subevent)
|
||||||
or (
|
or (
|
||||||
not item.all_sales_channels and
|
not a.item.all_sales_channels and
|
||||||
not item.limit_sales_channels.contains(self.order.sales_channel)
|
not a.item.limit_sales_channels.contains(self.order.sales_channel)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if is_unavailable:
|
if is_unavailable:
|
||||||
|
|||||||
@@ -1015,7 +1015,8 @@ class OrderChangeAddonsTest(BaseOrdersTest):
|
|||||||
'/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
'/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||||
)
|
)
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert 'Workshop 1' not in response.content.decode()
|
assert '<li>1x Workshop 1</li>' in response.content.decode()
|
||||||
|
assert f'cp_{self.ticket_pos.pk}_item_{self.workshop1.pk}' not in response.content.decode()
|
||||||
|
|
||||||
response = self.client.post(
|
response = self.client.post(
|
||||||
'/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
'/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||||
@@ -1035,6 +1036,39 @@ class OrderChangeAddonsTest(BaseOrdersTest):
|
|||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
assert self.ticket_pos.addons.count() == 2
|
assert self.ticket_pos.addons.count() == 2
|
||||||
|
|
||||||
|
def test_do_not_overbook_unavailable_on_adding(self):
|
||||||
|
self.iao.max_count = 1
|
||||||
|
self.iao.save()
|
||||||
|
self.workshop1.available_until = now() - datetime.timedelta(days=1)
|
||||||
|
self.workshop1.save()
|
||||||
|
with scopes_disabled():
|
||||||
|
OrderPosition.objects.create(
|
||||||
|
order=self.order,
|
||||||
|
item=self.workshop1,
|
||||||
|
variation=None,
|
||||||
|
price=Decimal("12"),
|
||||||
|
addon_to=self.ticket_pos,
|
||||||
|
attendee_name_parts={'full_name': "Peter"}
|
||||||
|
)
|
||||||
|
self.order.total += Decimal("12")
|
||||||
|
self.order.save()
|
||||||
|
|
||||||
|
response = self.client.get(
|
||||||
|
'/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||||
|
)
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert '<li>1x Workshop 1</li>' in response.content.decode()
|
||||||
|
assert f'cp_{self.ticket_pos.pk}_item_{self.workshop1.pk}' not in response.content.decode()
|
||||||
|
|
||||||
|
response = self.client.post(
|
||||||
|
'/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||||
|
{
|
||||||
|
f'cp_{self.ticket_pos.pk}_variation_{self.workshop2.pk}_{self.workshop2a.pk}': '1'
|
||||||
|
},
|
||||||
|
follow=True
|
||||||
|
)
|
||||||
|
assert 'alert-danger' in response.content.decode()
|
||||||
|
|
||||||
def test_remove_addon_checked_in(self):
|
def test_remove_addon_checked_in(self):
|
||||||
with scopes_disabled():
|
with scopes_disabled():
|
||||||
self.event.settings.change_allow_user_if_checked_in = True
|
self.event.settings.change_allow_user_if_checked_in = True
|
||||||
|
|||||||
Reference in New Issue
Block a user