diff --git a/src/pretix/presale/views/checkout.py b/src/pretix/presale/views/checkout.py index 757b2021c..1cde39a99 100644 --- a/src/pretix/presale/views/checkout.py +++ b/src/pretix/presale/views/checkout.py @@ -22,7 +22,7 @@ class CheckoutView(View): kwargs = {} if 'cart_namespace' in self.kwargs: kwargs['cart_namespace'] = self.kwargs['cart_namespace'] - return eventreverse(self.request.event, 'presale:event.index', kwargs=kwargs) + '?require_cookie=false' + return eventreverse(self.request.event, 'presale:event.index', kwargs=kwargs) + '?require_cookie=true' def dispatch(self, request, *args, **kwargs): self.request = request diff --git a/src/tests/presale/test_cart.py b/src/tests/presale/test_cart.py index 1a9a17428..e8e7f742f 100644 --- a/src/tests/presale/test_cart.py +++ b/src/tests/presale/test_cart.py @@ -63,7 +63,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) assert 'alert-danger' in response.rendered_content assert not CartPosition.objects.filter(cart_id=self.session_key, event=self.event).exists() @@ -74,7 +74,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) assert 'alert-danger' in response.rendered_content assert not CartPosition.objects.filter(cart_id=self.session_key, event=self.event).exists() @@ -83,7 +83,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -117,7 +117,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -321,7 +321,7 @@ class CartTest(CartTestMixin, TestCase): 'item_%d' % self.ticket.id: '1', 'price_%d' % self.ticket.id: '24.00' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -341,7 +341,7 @@ class CartTest(CartTestMixin, TestCase): 'item_%d' % self.ticket.id: '1', 'price_%d' % self.ticket.id: '24.00' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -361,7 +361,7 @@ class CartTest(CartTestMixin, TestCase): 'item_%d' % self.ticket.id: '1', 'price_%d' % self.ticket.id: '12.00' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -380,7 +380,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'variation_%d_%d' % (self.shirt.id, self.shirt_red.id): '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) objs = list(CartPosition.objects.filter(cart_id=self.session_key, event=self.event)) self.assertEqual(len(objs), 0) @@ -389,7 +389,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'variation_%d_%d' % (self.shirt.id, self.shirt_red.id): '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Shirt', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -410,7 +410,7 @@ class CartTest(CartTestMixin, TestCase): 'variation_%d_%d' % (self.shirt.id, self.shirt_red.id): '1', 'price_%d_%d' % (self.shirt.id, self.shirt_red.id): '16', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Shirt', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -446,7 +446,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '2' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -465,7 +465,7 @@ class CartTest(CartTestMixin, TestCase): 'item_%d' % self.ticket.id: '2', 'variation_%d_%d' % (self.shirt.id, self.shirt_red.id): '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart')[0].text) @@ -480,7 +480,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: 'a', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('numbers only', doc.select('.alert-danger')[0].text) @@ -489,7 +489,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '-2', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('numbers only', doc.select('.alert-danger')[0].text) @@ -497,7 +497,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'variation_%d_%d' % (self.shirt.id, self.shirt_blue.id): 'a', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('numbers only', doc.select('.alert-danger')[0].text) @@ -506,7 +506,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'variation_a_%d' % (self.shirt_blue.id): '-2', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('numbers only', doc.select('.alert-danger')[0].text) @@ -514,7 +514,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('did not select any products', doc.select('.alert-warning')[0].text) @@ -529,7 +529,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % shirt2.id: '1', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('not available', doc.select('.alert-danger')[0].text) @@ -540,7 +540,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % shirt2.id: '1', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('no longer available', doc.select('.alert-danger')[0].text) @@ -580,7 +580,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '5', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('more than', doc.select('.alert-danger')[0].text) @@ -596,7 +596,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '2', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('more than', doc.select('.alert-danger')[0].text) @@ -612,7 +612,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '2', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) self.assertEqual(CartPosition.objects.filter(cart_id=self.session_key, event=self.event).count(), 3) @@ -625,7 +625,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '4', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('at least', doc.select('.alert-danger')[0].text) @@ -640,13 +640,13 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '10', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) self.assertEqual(CartPosition.objects.filter(cart_id=self.session_key, event=self.event).count(), 10) response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '3', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) self.assertEqual(CartPosition.objects.filter(cart_id=self.session_key, event=self.event).count(), 13) @@ -656,7 +656,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '1', }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('no longer available', doc.select('.alert-danger')[0].text) @@ -668,7 +668,7 @@ class CartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '2' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('no longer available', doc.select('.alert-danger')[0].text) @@ -696,7 +696,7 @@ class CartTest(CartTestMixin, TestCase): 'item_%d' % self.ticket.id: '2', 'subevent': se.pk }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('no longer available', doc.select('.alert-danger')[0].text) @@ -1033,7 +1033,7 @@ class CartTest(CartTestMixin, TestCase): 'price_%d' % self.ticket.id: '21.00', '_voucher_code': v.code, }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) @@ -1055,7 +1055,7 @@ class CartTest(CartTestMixin, TestCase): 'price_%d' % self.ticket.id: '20.00', '_voucher_code': v.code, }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") self.assertIn('Early-bird', doc.select('.cart .cart-row')[0].select('strong')[0].text) diff --git a/src/tests/presale/test_checkout.py b/src/tests/presale/test_checkout.py index 44a987bfb..a4edd7ad0 100644 --- a/src/tests/presale/test_checkout.py +++ b/src/tests/presale/test_checkout.py @@ -71,7 +71,7 @@ class CheckoutTestCase(TestCase): def test_empty_cart(self): response = self.client.get('/%s/%s/checkout/start' % (self.orga.slug, self.event.slug), follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) def test_timezone(self): @@ -553,7 +553,7 @@ class CheckoutTestCase(TestCase): def test_premature_confirm(self): response = self.client.get('/%s/%s/checkout/confirm/' % (self.orga.slug, self.event.slug), follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) self.event.settings.set('payment_stripe__enabled', True) diff --git a/src/tests/presale/test_widget.py b/src/tests/presale/test_widget.py index 3f6287ce9..f8255fc41 100644 --- a/src/tests/presale/test_widget.py +++ b/src/tests/presale/test_widget.py @@ -80,7 +80,7 @@ class WidgetCartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") assert len(doc.select('.cart .cart-row')) == 2 @@ -95,7 +95,7 @@ class WidgetCartTest(CartTestMixin, TestCase): response = self.client.post('/%s/%s/w/aaaaaaaaaaaaaaaa/cart/add' % (self.orga.slug, self.event.slug), { 'item_%d' % self.ticket.id: '1' }, follow=True) - self.assertRedirects(response, '/%s/%s/w/aaaaaaaaaaaaaaaa/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/w/aaaaaaaaaaaaaaaa/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") assert len(doc.select('.cart .cart-row')) == 2 @@ -110,7 +110,7 @@ class WidgetCartTest(CartTestMixin, TestCase): 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.assertRedirects(response, '/%s/%s/w/aaaaaaaaaaaaaaab/' % (self.orga.slug, self.event.slug), + self.assertRedirects(response, '/%s/%s/w/aaaaaaaaaaaaaaab/?require_cookie=true' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content, "lxml") assert len(doc.select('.cart .cart-row')) == 2