Exemple #1
0
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"
Exemple #2
0
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"
Exemple #3
0
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
Exemple #4
0
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)"
Exemple #5
0
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),
    )
Exemple #6
0
 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)
Exemple #7
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
Exemple #8
0
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
Exemple #9
0
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 == ""
Exemple #10
0
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
Exemple #11
0
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
Exemple #12
0
def step_impl(context):
    context.meeting = MeetingFactory(
        guild=context.guild,
        organizer=context.user,
        sphere=context.sphere,
    )