forked from CGM_Public/pretix_original
Add option to limit events to specific sales channels (#1867)
This commit is contained in:
@@ -85,7 +85,8 @@ TEST_EVENT_RES = {
|
||||
],
|
||||
'item_meta_properties': {
|
||||
'day': 'Monday',
|
||||
}
|
||||
},
|
||||
'sales_channels': ['web']
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ class CartTestMixin:
|
||||
organizer=self.orga, name='30C3', slug='30c3',
|
||||
date_from=datetime.datetime(now().year + 1, 12, 26, tzinfo=datetime.timezone.utc),
|
||||
live=True,
|
||||
plugins="pretix.plugins.banktransfer"
|
||||
plugins="pretix.plugins.banktransfer",
|
||||
sales_channels=['web', 'bar']
|
||||
)
|
||||
self.tr19 = self.event.tax_rules.create(rate=Decimal('19.00'))
|
||||
self.category = ItemCategory.objects.create(event=self.event, name="Everything", position=0)
|
||||
|
||||
@@ -28,7 +28,7 @@ class EventTestMixin:
|
||||
self.event = Event.objects.create(
|
||||
organizer=self.orga, name='30C3', slug='30c3',
|
||||
date_from=datetime.datetime(now().year + 1, 12, 26, tzinfo=datetime.timezone.utc),
|
||||
live=True
|
||||
live=True, sales_channels=['web', 'bar']
|
||||
)
|
||||
self.user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
|
||||
t = Team.objects.create(organizer=self.orga, can_change_event_settings=True)
|
||||
@@ -1018,6 +1018,23 @@ class DeadlineTest(EventTestMixin, TestCase):
|
||||
)
|
||||
self.assertNotEqual(response.status_code, 403)
|
||||
|
||||
def test_saleschannel_disabled(self):
|
||||
self.event.presale_start = None
|
||||
self.event.presale_end = None
|
||||
self.event.sales_channels = []
|
||||
self.event.save()
|
||||
response = self.client.get(
|
||||
'/%s/%s/' % (self.orga.slug, self.event.slug)
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
response = self.client.post(
|
||||
'/%s/%s/cart/add' % (self.orga.slug, self.event.slug),
|
||||
{
|
||||
'item_%d' % self.item.id: '1'
|
||||
}
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_in_time(self):
|
||||
self.event.presale_start = now() - datetime.timedelta(days=1)
|
||||
self.event.presale_end = now() + datetime.timedelta(days=1)
|
||||
|
||||
@@ -121,6 +121,21 @@ class WidgetCartTest(CartTestMixin, TestCase):
|
||||
self.assertIn('23', doc.select('.cart .cart-row')[0].select('.price')[0].text)
|
||||
self.assertIn('23', doc.select('.cart .cart-row')[0].select('.price')[1].text)
|
||||
|
||||
def test_saleschannel_disabled(self):
|
||||
self.event.sales_channels = []
|
||||
self.event.save()
|
||||
response = self.client.get('/%s/%s/widget/product_list' % (self.orga.slug, self.event.slug))
|
||||
data = json.loads(response.content.decode())
|
||||
assert data == {
|
||||
"error": "Tickets for this event cannot be purchased on this sales channel.",
|
||||
'poweredby': '<a href="https://pretix.eu" target="_blank" rel="noopener">event ticketing powered by pretix</a>',
|
||||
}
|
||||
self.assertEqual(response.status_code, 200)
|
||||
response = self.client.post('/%s/%s/w/aaaaaaaaaaaaaaab/cart/add' % (self.orga.slug, self.event.slug), {
|
||||
'item_%d' % self.ticket.id: '1'
|
||||
}, follow=True)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_product_list_view(self):
|
||||
response = self.client.get('/%s/%s/widget/product_list' % (self.orga.slug, self.event.slug))
|
||||
assert response['Access-Control-Allow-Origin'] == '*'
|
||||
|
||||
Reference in New Issue
Block a user