Disable shop and waiting list after end of event

This commit is contained in:
Raphael Michel
2018-02-04 14:14:49 +01:00
parent 2f00db8081
commit 67678e35bb
11 changed files with 126 additions and 26 deletions

View File

@@ -1020,6 +1020,38 @@ class EventTest(TestCase):
assert event2.checkin_lists.count() == 1
assert [i.pk for i in event2.checkin_lists.first().limit_products.all()] == [i1new.pk]
def test_presale_has_ended(self):
event = Event(
organizer=self.organizer, name='Download', slug='download',
date_from=now()
)
assert not event.presale_has_ended
assert event.presale_is_running
event.date_from = now().replace(hour=23, minute=59, second=59)
assert not event.presale_has_ended
assert event.presale_is_running
event.date_from = now() - timedelta(days=1)
assert event.presale_has_ended
assert not event.presale_is_running
event.date_to = now() + timedelta(days=1)
assert not event.presale_has_ended
assert event.presale_is_running
event.date_to = now() - timedelta(days=1)
assert event.presale_has_ended
assert not event.presale_is_running
event.presale_end = now() + timedelta(days=1)
assert not event.presale_has_ended
assert event.presale_is_running
event.presale_end = now() - timedelta(days=1)
assert event.presale_has_ended
assert not event.presale_is_running
class SubEventTest(TestCase):
@classmethod

View File

@@ -1,3 +1,5 @@
from datetime import timedelta
from django.core import mail as djmail
from django.test import TestCase
from django.utils.timezone import now
@@ -115,6 +117,21 @@ class WaitingListTestCase(TestCase):
assert WaitingListEntry.objects.filter(voucher__isnull=True).count() == 10
assert Voucher.objects.count() == 10
def test_send_periodic_event_over(self):
self.event.settings.set('waiting_list_enabled', True)
self.event.settings.set('waiting_list_auto', True)
self.event.presale_end = now() - timedelta(days=1)
self.event.save()
for i in range(5):
WaitingListEntry.objects.create(
event=self.event, item=self.item2, variation=self.var1, email='foo{}@bar.com'.format(i)
)
process_waitinglist(None)
assert WaitingListEntry.objects.filter(voucher__isnull=True).count() == 5
assert Voucher.objects.count() == 0
self.event.presale_end = now() + timedelta(days=1)
self.event.save()
def test_send_periodic(self):
self.event.settings.set('waiting_list_enabled', True)
self.event.settings.set('waiting_list_auto', True)

View File

@@ -14,7 +14,7 @@ def env(client):
orga = Organizer.objects.create(name='CCC', slug='ccc')
event = Event.objects.create(
organizer=orga, name='30C3', slug='30c3',
date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc),
date_from=datetime.datetime(now().year + 1, 12, 26, tzinfo=datetime.timezone.utc),
plugins='pretix.plugins.paypal',
live=True
)

View File

@@ -24,7 +24,7 @@ def env(client):
orga = Organizer.objects.create(name='CCC', slug='ccc')
event = Event.objects.create(
organizer=orga, name='30C3', slug='30c3',
date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc),
date_from=datetime.datetime(now().year + 1, 12, 26, tzinfo=datetime.timezone.utc),
plugins='pretix.plugins.stripe',
live=True
)

View File

@@ -25,7 +25,7 @@ class CartTestMixin:
self.orga = Organizer.objects.create(name='CCC', slug='ccc')
self.event = Event.objects.create(
organizer=self.orga, name='30C3', slug='30c3',
date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc),
date_from=datetime.datetime(now().year + 1, 12, 26, tzinfo=datetime.timezone.utc),
live=True,
plugins="pretix.plugins.banktransfer"
)
@@ -68,6 +68,17 @@ class CartTest(CartTestMixin, TestCase):
assert 'alert-danger' in response.rendered_content
assert not CartPosition.objects.filter(cart_id=self.session_key, event=self.event).exists()
def test_after_event(self):
self.event.date_to = now() - timedelta(days=1)
self.event.save()
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/?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()
def test_before_presale(self):
self.event.presale_start = now() + timedelta(days=1)
self.event.save()

View File

@@ -26,7 +26,7 @@ class CheckoutTestCase(TestCase):
self.orga = Organizer.objects.create(name='CCC', slug='ccc')
self.event = Event.objects.create(
organizer=self.orga, name='30C3', slug='30c3',
date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc),
date_from=datetime.datetime(now().year + 1, 12, 26, tzinfo=datetime.timezone.utc),
plugins='pretix.plugins.stripe,pretix.plugins.banktransfer',
live=True
)
@@ -1110,6 +1110,19 @@ class CheckoutTestCase(TestCase):
self.assertEqual(len(doc.select(".alert-danger")), 1)
self.assertEqual(CartPosition.objects.filter(cart_id=self.session_key).count(), 1)
def test_confirm_event_over(self):
self.event.date_to = now() - datetime.timedelta(days=1)
self.event.save()
CartPosition.objects.create(
event=self.event, cart_id=self.session_key, item=self.ticket,
price=23, expires=now() + timedelta(minutes=10)
)
self._set_session('payment', 'banktransfer')
response = self.client.post('/%s/%s/checkout/confirm/' % (self.orga.slug, self.event.slug), follow=True)
doc = BeautifulSoup(response.rendered_content, "lxml")
self.assertGreaterEqual(len(doc.select(".alert-danger")), 1)
def test_confirm_presale_over(self):
self.event.presale_end = now() - datetime.timedelta(days=1)
self.event.save()

View File

@@ -24,7 +24,7 @@ class EventTestMixin:
self.orga = Organizer.objects.create(name='CCC', slug='ccc')
self.event = Event.objects.create(
organizer=self.orga, name='30C3', slug='30c3',
date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc),
date_from=datetime.datetime(now().year + 1, 12, 26, tzinfo=datetime.timezone.utc),
live=True
)
self.user = User.objects.create_user('dummy@dummy.dummy', 'dummy')
@@ -706,6 +706,26 @@ class DeadlineTest(EventTestMixin, TestCase):
self.assertIn('alert-danger', response.rendered_content)
self.assertIn('not yet started', response.rendered_content)
def test_event_over(self):
self.event.date_to = now() - datetime.timedelta(days=1)
self.event.presale_end = None
self.event.save()
response = self.client.get(
'/%s/%s/' % (self.orga.slug, self.event.slug)
)
self.assertEqual(response.status_code, 200)
self.assertIn('alert-info', response.rendered_content)
self.assertNotIn('btn-add-to-cart', response.rendered_content)
response = self.client.post(
'/%s/%s/cart/add' % (self.orga.slug, self.event.slug),
{
'item_%d' % self.item.id: '1'
},
follow=True
)
self.assertIn('alert-danger', response.rendered_content)
self.assertIn('is over', response.rendered_content)
def test_over(self):
self.event.presale_end = now() - datetime.timedelta(days=1)
self.event.save()