def test_two_slots_one_session(self): # If there are two slots, we return data for each of them, in order of the slots # start time user1 = UserFactory(first_name="Melanie", last_name="Pickle", email='*****@*****.**') user2 = UserFactory(first_name="Ichabod", last_name="Crane", email='*****@*****.**') session = SessionFactory() slot1 = SlotFactory(start=datetime.time(13)) slot2 = SlotFactory(start=datetime.time(8)) session.slots.add(slot1) session.slots.add(slot2) SessionRoleFactory(session=session, user=user1, role=SessionRole.SESSION_ROLE_CHAIR) SessionRoleFactory(session=session, user=user2, role=SessionRole.SESSION_ROLE_CHAIR, status=False) data = self.get_api_result() self.assertEqual([{ 'conf_key': slot2.pk, 'chair_email': '*****@*****.**', 'chair_name': 'Melanie Pickle', 'runner_email': '', 'runner_name': '' }, { 'conf_key': slot1.pk, 'chair_email': '*****@*****.**', 'chair_name': 'Melanie Pickle', 'runner_email': '', 'runner_name': '' }], data)
def test_presentation_count(self): PRESENTATION_COUNT = 5 SlotFactory.create_batch(size=PRESENTATION_COUNT) response = self.client.get(reverse("schedule_json")) self.assertEqual(len(response.json()["schedule"]), PRESENTATION_COUNT)
def test_slot_override(self): """Verify that slot.content_override displays in JSON.""" OVERRIDDEN_CONTENT = "**FOOBAR**" slot = SlotFactory() slot.content_override = OVERRIDDEN_CONTENT slot.save() response = self.client.get(reverse("schedule_json")) self.assertContains( response=response, text=OVERRIDDEN_CONTENT, status_code=200 )
def test_two_slots_two_sessions(self): # If there are two slots, we return data for each of them, in order of the slots # start time user1 = UserFactory(first_name="Melanie", last_name="Pickle", email='*****@*****.**') user2 = UserFactory(first_name="Ichabod", last_name="Crane", email='*****@*****.**') session1 = SessionFactory() session2 = SessionFactory() slot1 = SlotFactory(start=datetime.time(13)) slot2 = SlotFactory(start=datetime.time(8)) session1.slots.add(slot1) session2.slots.add(slot2) SessionRoleFactory(session=session1, user=user1, role=SessionRole.SESSION_ROLE_CHAIR) SessionRoleFactory(session=session1, user=user2, role=SessionRole.SESSION_ROLE_RUNNER) user3 = UserFactory(first_name="Mike", last_name="Hammer", email='*****@*****.**') user4 = UserFactory(first_name="Sam", last_name="Spade", email='*****@*****.**') SessionRoleFactory(session=session2, user=user3, role=SessionRole.SESSION_ROLE_CHAIR) SessionRoleFactory(session=session2, user=user4, role=SessionRole.SESSION_ROLE_RUNNER) data = self.get_api_result() self.assertEqual([{ 'conf_key': slot2.pk, 'chair_email': '*****@*****.**', 'chair_name': 'Mike Hammer', 'runner_email': '*****@*****.**', 'runner_name': 'Sam Spade' }, { 'conf_key': slot1.pk, 'chair_email': '*****@*****.**', 'chair_name': 'Melanie Pickle', 'runner_email': '*****@*****.**', 'runner_name': 'Ichabod Crane' }], data)
def test_no_cancelled_presentations(self): self.schedule.published = True self.schedule.save() cancelled_presentation = PresentationFactory( cancelled=True, slot=SlotFactory(kind=SlotKindFactory(schedule=self.schedule)), ) response = self.client.get( reverse("schedule_list_csv", args=[self.schedule.section.slug])) self.assertNotContains(response, cancelled_presentation.title)
def test_presentation_data(self): """Verify that a presentation's content appears.""" TALK_TITLE = "Presentation Content Verification Testing for Snakes" DESCRIPTION_CONTENT = "It was a bright cold day in April..." ABSTRACT_CONTENT = "...the color of television tuned to a dead channel" user_model = get_user_model() user = user_model.objects.create( username="******", email="*****@*****.**", first_name="Test", last_name="User", ) speaker = Speaker.objects.create(user=user, name="Speaker") section = SectionFactory() proposal_kind = ProposalKindFactory() # We don't use factories so that all title/description/abstract # information is synchronized between the ProposalBase and the # Presentation. proposal_base = ProposalBase.objects.create( title=TALK_TITLE, description=DESCRIPTION_CONTENT, abstract=ABSTRACT_CONTENT, speaker=speaker, kind=proposal_kind, ) presentation = Presentation.objects.create( title=TALK_TITLE, description=DESCRIPTION_CONTENT, abstract=ABSTRACT_CONTENT, speaker=speaker, proposal_base=proposal_base, section=section, ) slot = SlotFactory() slot.assign(presentation) response = self.client.get(reverse("schedule_json")) self.assertContains(response=response, text=TALK_TITLE) self.assertContains(response=response, text=DESCRIPTION_CONTENT) self.assertContains(response=response, text=ABSTRACT_CONTENT)
def test_slot_no_roles(self): session = SessionFactory() slot = SlotFactory() session.slots.add(slot) data = self.get_api_result() self.assertEqual([{ 'conf_key': slot.pk, 'chair_email': '', 'chair_name': '', 'runner_email': '', 'runner_name': '' }], data)
def test_slot_runner_no_chair(self): user = UserFactory(first_name="Melanie", last_name="Pickle", email='*****@*****.**') session = SessionFactory() slot = SlotFactory() session.slots.add(slot) SessionRoleFactory(session=session, user=user, role=SessionRole.SESSION_ROLE_RUNNER) data = self.get_api_result() self.assertEqual([{ 'conf_key': slot.pk, 'chair_email': '', 'chair_name': '', 'runner_email': '*****@*****.**', 'runner_name': 'Melanie Pickle', }], data)
def test_two_chairs_two_runners_one_declined(self): user1 = UserFactory(first_name="Melanie", last_name="Pickle", email='*****@*****.**') user2 = UserFactory(first_name="Ichabod", last_name="Crane", email='*****@*****.**') session = SessionFactory() slot = SlotFactory() session.slots.add(slot) SessionRoleFactory(session=session, user=user1, role=SessionRole.SESSION_ROLE_CHAIR) SessionRoleFactory(session=session, user=user2, role=SessionRole.SESSION_ROLE_CHAIR, status=False) user3 = UserFactory(first_name="Mike", last_name="Hammer", email='*****@*****.**') user4 = UserFactory(first_name="Sam", last_name="Spade", email='*****@*****.**') SessionRoleFactory(session=session, user=user3, role=SessionRole.SESSION_ROLE_RUNNER) SessionRoleFactory(session=session, user=user4, role=SessionRole.SESSION_ROLE_RUNNER, status=False) data = self.get_api_result() self.assertEqual([{ 'conf_key': slot.pk, 'chair_email': '*****@*****.**', 'chair_name': 'Melanie Pickle', 'runner_email': '*****@*****.**', 'runner_name': 'Mike Hammer' }], data)
def test_slot_chair_and_runner(self): user1 = UserFactory(first_name="Melanie", last_name="Pickle", email='*****@*****.**') user2 = UserFactory(first_name="Ichabod", last_name="Crane", email='*****@*****.**') session = SessionFactory() slot = SlotFactory() session.slots.add(slot) SessionRoleFactory(session=session, user=user1, role=SessionRole.SESSION_ROLE_CHAIR) SessionRoleFactory(session=session, user=user2, role=SessionRole.SESSION_ROLE_RUNNER) data = self.get_api_result() self.assertEqual([{ 'conf_key': slot.pk, 'chair_email': '*****@*****.**', 'chair_name': 'Melanie Pickle', 'runner_email': '*****@*****.**', 'runner_name': 'Ichabod Crane', }], data)