def test_duplicate_meeting_names_in_different_spheres(): name = "Silkworm Breeders Annual Conference" meeting_1 = MeetingFactory(name=name) meeting_2 = MeetingFactory(name=name) meeting_3 = MeetingFactory(name=name) assert meeting_1.slug == "silkworm-breeders-annual-conference" assert meeting_2.slug == "silkworm-breeders-annual-conference" assert meeting_3.slug == "silkworm-breeders-annual-conference"
def test_unique_meeting_slugs(): name = "Silkworm Breeders Annual Conference" sphere = SphereFactory() meeting_1 = MeetingFactory(name=name, sphere=sphere) meeting_2 = MeetingFactory(name=name, sphere=sphere) meeting_3 = MeetingFactory(name=name, sphere=sphere) assert meeting_1.slug == "silkworm-breeders-annual-conference" assert meeting_2.slug == "silkworm-breeders-annual-conference-1" assert meeting_3.slug == "silkworm-breeders-annual-conference-2"
def test_accept_proposals_duplicate_slug( proposal_admin, request_with_user, name, new_slug, kwargs ): sphere = SphereFactory() if kwargs.get("slug"): MeetingFactory(slug=kwargs.get("slug"), sphere=sphere) proposal = ProposalFactory( meeting=None, name=name, waitlist__festival__sphere=sphere ) if kwargs.get("organizer"): proposal.speaker_user = None proposal.save() proposal_admin.accept_proposals( request=request_with_user, queryset=Proposal.objects.order_by("id") ) proposal = Proposal.objects.last() organizer = ( request_with_user.user if kwargs.get("organizer") else proposal.speaker_user ) for field, value in _get_meeting_fields_from_proposal( proposal, slug=new_slug, organizer=organizer ): assert getattr(proposal.meeting, field) == value
def test_agenda_item_str(): proposal = ProposalFactory( speaker_name="John Gale", meeting=MeetingFactory(name="About my game") ) agenda_item = AgendaItemFactory(meeting=proposal.meeting) assert str(agenda_item) == "About my game by John Gale (unassigned)"
def step_impl(context): context.meeting = MeetingFactory( end_time=timezone.localtime(timezone.now()) - timedelta(days=2), guild=context.guild, organizer=context.user, publication_time=timezone.localtime(timezone.now()) - timedelta(days=6), sphere=context.sphere, start_time=timezone.localtime(timezone.now()) - timedelta(days=4), )
def test_remove_participant(self): meeting = MeetingFactory() MeetingParticipant.objects.create( user=self.user, meeting=meeting, status=MeetingParticipant.CONFIRMED, ) self.client.force_authenticate(user=self.user) # pylint: disable=no-member remove_participant_url = reverse( "v1:notice_board:meetings-remove-participant", kwargs={"pk": meeting.pk}, ) res = self.client.post( remove_participant_url, data={}, ) self.assertAlmostEqual(res.json(), {"status": "OK"}) meeting.refresh_from_db() self.assertEqual(len(meeting.participants.all()), 0)
def setUp(self): self.user = User.objects.create( first_name="Mszczuj", last_name="ze Skzynna", username="******" ) self.meeting_1 = MeetingFactory(participants_limit=2) self.meeting_2 = MeetingFactory(participants_limit=4) self.meeting_3 = MeetingFactory(participants_limit=-1) self.meeting_4 = MeetingFactory(participants_limit=0) self.meeting_5 = MeetingFactory(participants_limit=None) for _ in range(4): MeetingParticipant.objects.create( user=UserFactory(), meeting=self.meeting_2, status=MeetingParticipant.CONFIRMED, ) self.add_participant_url = reverse( "v1:notice_board:meetings-add-participant", kwargs={"pk": self.meeting_1.pk}, ) self.client.force_authenticate(user=self.user) # pylint: disable=no-member
def test_agenda_item_status(kwargs, status): festival = FestivalFactory() base_kwargs = { "helper": HelperFactory(festival=festival), "room": RoomFactory(festival=festival), "meeting": MeetingFactory(), "meeting_confirmed": False, "helper_confirmed": False, } base_kwargs.update(kwargs) agenda_item = AgendaItem.objects.create(**base_kwargs) assert agenda_item.status == status
def test_agenda_item_admin_delete(hour, agenda_item_admin, request_builder): RoomFactory() RoomFactory() proposal = ProposalFactory( duration_minutes=2, meeting=MeetingFactory(publication_time=hour(-1)) ) agenda_item = AgendaItemFactory(meeting=proposal.meeting) meeting_id = agenda_item.meeting.id room = RoomFactory() request = request_builder(room_id=room.id) agenda_item_admin.delete_model(request=request, obj=agenda_item) meeting = Meeting.objects.get(id=meeting_id) assert meeting.start_time is None assert meeting.end_time is None assert meeting.location == ""
def test_agenda_item_admin_save_model(hour, agenda_item_admin, request_builder): RoomFactory() RoomFactory() proposal = ProposalFactory( duration_minutes=2, meeting=MeetingFactory(publication_time=hour(-1)) ) room = RoomFactory() request = request_builder(room_id=room.id) agenda_item = AgendaItemFactory(meeting=proposal.meeting) agenda_item_admin.save_model( request=request, obj=agenda_item, form=Mock(), change=True ) meeting = Meeting.objects.get(id=agenda_item.meeting.id) assert meeting.start_time == hour(2) assert meeting.end_time == hour(3) assert meeting.location == agenda_item.room.name
def test_agenda_item_form_update(hour, festival_room): room = festival_room(-3, 8) agenda_item = AgendaItemFactory( room=room, meeting__start_time=hour(-2), meeting__end_time=hour(2), meeting__publication_time=hour(-4), ) proposal = ProposalFactory( meeting=MeetingFactory(), waitlist__festival=room.festival, duration_minutes=8, ) form = AgendaItemForm( instance=agenda_item, data={"meeting": proposal.meeting, "room": room}, ) assert form.is_valid() is True
def step_impl(context): context.meeting = MeetingFactory( guild=context.guild, organizer=context.user, sphere=context.sphere, )