import datetime from tests.base import SoupTest, extract_form_fields from pretix.base.models import ( Event, EventPermission, Organizer, OrganizerPermission, User, ) class EventsTest(SoupTest): def setUp(self): super().setUp() self.user = User.objects.create_user('dummy@dummy.dummy', 'dummy') self.orga1 = Organizer.objects.create(name='CCC', slug='ccc') self.orga2 = Organizer.objects.create(name='MRM', slug='mrm') self.event1 = Event.objects.create( organizer=self.orga1, name='30C3', slug='30c3', date_from=datetime.datetime(2013, 12, 26, tzinfo=datetime.timezone.utc), ) self.event2 = Event.objects.create( organizer=self.orga1, name='31C3', slug='31c3', date_from=datetime.datetime(2014, 12, 26, tzinfo=datetime.timezone.utc), ) self.event3 = Event.objects.create( organizer=self.orga2, name='MRMCD14', slug='mrmcd14', date_from=datetime.datetime(2014, 9, 5, tzinfo=datetime.timezone.utc), ) OrganizerPermission.objects.create(organizer=self.orga1, user=self.user) EventPermission.objects.create(event=self.event1, user=self.user, can_change_items=True, can_change_settings=True) self.client.login(email='dummy@dummy.dummy', password='dummy') def test_event_list(self): doc = self.get_doc('/control/events/') tabletext = doc.select("#page-wrapper .table")[0].text self.assertIn("30C3", tabletext) self.assertNotIn("31C3", tabletext) self.assertNotIn("MRMCD14", tabletext) def test_settings(self): doc = self.get_doc('/control/event/%s/%s/settings/' % (self.orga1.slug, self.event1.slug)) doc.select("[name=date_to]")[0]['value'] = "2013-12-30 17:00:00" doc.select("[name=settings-max_items_per_order]")[0]['value'] = "12" print(extract_form_fields(doc.select('.container-fluid form')[0])) doc = self.post_doc('/control/event/%s/%s/settings/' % (self.orga1.slug, self.event1.slug), extract_form_fields(doc.select('.container-fluid form')[0])) print(doc) assert len(doc.select(".alert-success")) > 0 assert doc.select("[name=date_to]")[0]['value'] == "2013-12-30 17:00:00" assert doc.select("[name=settings-max_items_per_order]")[0]['value'] == "12" def test_plugins(self): doc = self.get_doc('/control/event/%s/%s/settings/plugins' % (self.orga1.slug, self.event1.slug)) self.assertIn("Bank transfer", doc.select(".form-plugins")[0].text) self.assertIn("Enable", doc.select("[name=plugin:pretix.plugins.banktransfer]")[0].text) doc = self.post_doc('/control/event/%s/%s/settings/plugins' % (self.orga1.slug, self.event1.slug), {'plugin:pretix.plugins.banktransfer': 'enable'}) self.assertIn("Disable", doc.select("[name=plugin:pretix.plugins.banktransfer]")[0].text) doc = self.post_doc('/control/event/%s/%s/settings/plugins' % (self.orga1.slug, self.event1.slug), {'plugin:pretix.plugins.banktransfer': 'disable'}) self.assertIn("Enable", doc.select("[name=plugin:pretix.plugins.banktransfer]")[0].text)