Esempio n. 1
0
 def setUp(self):
     self.active_season = SeasonFactory(is_active=True)
     self.room = RoomFactory(season=self.active_season)
     self.team = TeamFactory(season=self.active_season, room=self.room)
     self.competitor = CompetitorFactory()
     self.team_membership = TeamMembershipFactory(competitor=self.competitor,
                                                  team=self.team,
                                                  is_leader=True)
Esempio n. 2
0
 def test_get_all_team_memberships_for_team_with_two_competitors(self):
     competitor = CompetitorFactory()
     team_membership = TeamMembershipFactory(competitor=competitor,
                                             team=self.team,
                                             is_leader=False)
     team_membership.refresh_from_db()
     self.assertEqual(2, TeamMembership.objects.get_all_team_memberships_for_team(
         team=self.team).count())
Esempio n. 3
0
 def test_get_all_team_memberships_for_competitor_with_two_teams(self):
     new_active_season = SeasonFactory(is_active=True)
     room = RoomFactory(season=new_active_season)
     team = TeamFactory(season=new_active_season, room=room)
     team_membership = TeamMembershipFactory(competitor=self.competitor,
                                             team=team,
                                             is_leader=True)
     team_membership.refresh_from_db()
     self.assertEqual(2, TeamMembership.objects.get_all_team_memberships_for_competitor(
         competitor=self.competitor).count())
Esempio n. 4
0
    def test_list_all_teams_for_competitor(self):
        self.assertEqual(1, TeamMembership.objects.count())
        self.assertEqual([self.team], TeamMembership.objects.list_all_teams_for_competitor(competitor=self.competitor))
        new_active_season = SeasonFactory(is_active=True)
        room = RoomFactory(season=new_active_season)
        team = TeamFactory(season=new_active_season, room=room)
        self.team_membership = TeamMembershipFactory(competitor=self.competitor,
                                                     team=team,
                                                     is_leader=False)

        self.assertEqual([team],
                         TeamMembership.objects.list_all_teams_for_competitor(competitor=self.competitor))
Esempio n. 5
0
 def test_signal_sets_to_false_looking_for_team_property_after_team_membership_is_created(self):
     team = TeamFactory(season=self.season)
     TeamMembershipFactory(team=team,
                           competitor=self.competitor,
                           is_leader=False)
     self.season_competitor_info.refresh_from_db()
     self.assertFalse(self.season_competitor_info.looking_for_team)
Esempio n. 6
0
    def test_get_all_teams_for_current_season(self):
        self.assertEqual(1, Team.objects.count())
        self.assertEqual(1, Team.objects.get_all_teams_for_current_season(season=self.active_season).count())

        room = RoomFactory(season=self.active_season)
        team = TeamFactory(season=self.active_season, room=room)
        competitor = CompetitorFactory()
        self.team_membership = TeamMembershipFactory(competitor=competitor,
                                                     team=team,
                                                     is_leader=False)

        self.assertEqual(2, Team.objects.get_all_teams_for_current_season(season=self.active_season).count())
Esempio n. 7
0
class IsTeamLeaderOrReadOnlyTest(TestCase):
    def setUp(self):
        self.permission = IsTeamLeaderOrReadOnly()
        self.team = TeamFactory()
        self.competitor = CompetitorFactory()
        self.team_membership = TeamMembershipFactory(
            competitor=self.competitor, team=self.team, is_leader=False)

    def test_non_team_leader_can_read(self):
        request = make_mock_object(user=self.competitor, method='GET')
        self.assertTrue(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team))

    def test_non_team_leader_can_not_delete_team(self):
        request = make_mock_object(user=self.competitor, method='DELETE')
        self.assertFalse(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team))

    def test_non_team_leader_can_not_update_team(self):
        request = make_mock_object(user=self.competitor, method='PATCH')
        self.assertFalse(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team))

    def test_team_leader_can_read(self):
        self.team_membership.is_leader = True
        self.team_membership.save()

        request = make_mock_object(user=self.competitor, method='GET')
        self.assertTrue(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team))

    def test_team_leader_can_delete_team(self):
        self.team_membership.is_leader = True
        self.team_membership.save()

        request = make_mock_object(user=self.competitor, method='DELETE')
        self.assertTrue(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team))

    def test_team_leader_can_update_team(self):
        self.team_membership.is_leader = True
        self.team_membership.save()

        request = make_mock_object(user=self.competitor, method='PATCH')
        self.assertTrue(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team))
Esempio n. 8
0
    def setUp(self):
        self.active_season = SeasonFactory(is_active=True)
        self.room = RoomFactory(season=self.active_season)
        self.team = TeamFactory(season=self.active_season, room=self.room)
        self.competitor = CompetitorFactory()
        self.team_membership = TeamMembershipFactory(competitor=self.competitor,
                                                     team=self.team,
                                                     is_leader=True)

        self.company = HackFmiPartnerFactory()
        self.mentor = MentorFactory(from_company=self.company)

        self.team_mentorship = TeamMentorshipFactory(team=self.team,
                                                     mentor=self.mentor)
Esempio n. 9
0
    def test_server_group_send_message_to_client_on_post_save_of_invitation(
            self):
        competitor = CompetitorFactory()

        # Add test-channel to Invitation example group
        expected_group_name = settings.INVITATION_GROUP_NAME.format(
            id=competitor.id)
        Group(expected_group_name).add("test-channel")

        team = TeamFactory(season__is_active=True)
        TeamMembershipFactory(team=team, competitor=competitor, is_leader=True)
        InvitationFactory(team=team, competitor=competitor)
        # Get the message that is transferred into the channel
        result = self.get_next_message("test-channel")
        result = json.loads(result.get('text'))
        self.assertEqual(result['message'], "New invitation was created.")
        self.assertEqual(result['leader'], competitor.full_name)
Esempio n. 10
0
class TestTeamMembershipManager(TestCase):
    def setUp(self):
        self.active_season = SeasonFactory(is_active=True)
        self.room = RoomFactory(season=self.active_season)
        self.team = TeamFactory(season=self.active_season, room=self.room)
        self.competitor = CompetitorFactory()
        self.team_membership = TeamMembershipFactory(competitor=self.competitor,
                                                     team=self.team,
                                                     is_leader=True)
    """
    Tests for TeamMembershipManager.
    """

    def test_list_all_teams_for_competitor(self):
        self.assertEqual(1, TeamMembership.objects.count())
        self.assertEqual([self.team], TeamMembership.objects.list_all_teams_for_competitor(competitor=self.competitor))
        new_active_season = SeasonFactory(is_active=True)
        room = RoomFactory(season=new_active_season)
        team = TeamFactory(season=new_active_season, room=room)
        self.team_membership = TeamMembershipFactory(competitor=self.competitor,
                                                     team=team,
                                                     is_leader=False)

        self.assertEqual([team],
                         TeamMembership.objects.list_all_teams_for_competitor(competitor=self.competitor))

    def test_list_all_teams_for_competitor_if_competitor_has_no_team(self):
        competitor = CompetitorFactory()
        self.assertEqual(0, TeamMembership.objects.get_all_team_memberships_for_competitor(
            competitor=competitor).count())
        self.assertEqual([], TeamMembership.objects.list_all_teams_for_competitor(competitor=competitor))

    def test_get_leader_of_team_if_competitor_is_leader(self):
        self.assertEqual(self.competitor, TeamMembership.objects.get_leader_of_team(team=self.team))

    def test_get_leader_of_team_if_team_has_no_leader(self):
        self.team_membership.is_leader = False
        self.team_membership.save()
        self.assertEqual(None, TeamMembership.objects.get_leader_of_team(team=self.team))

    def test_get_leader_of_team_if_team_is_None(self):
        self.team = None
        self.team_membership.save()
        self.assertEqual(None, TeamMembership.objects.get_leader_of_team(team=self.team))

    def test_is_competitor_leader_of_team(self):
        self.assertTrue(TeamMembership.objects.is_competitor_leader_of_team(competitor=self.competitor, team=self.team))

        self.team_membership.is_leader = False
        self.team_membership.save()
        self.assertFalse(TeamMembership.objects.is_competitor_leader_of_team(competitor=self.competitor,
                                                                             team=self.team))

    def test_is_competitor_leader_of_team_if_competitor_has_no_team(self):
        competitor = CompetitorFactory()
        team = None
        self.assertFalse(TeamMembership.objects.is_competitor_leader_of_team(competitor=competitor,
                                                                             team=team))

    def test_is_competitor_leader_of_team_if_competitor_is_None(self):
        competitor = None
        self.assertFalse(TeamMembership.objects.is_competitor_leader_of_team(competitor=competitor,
                                                                             team=self.team))

    def test_is_competitor_leader(self):
        self.assertTrue(TeamMembership.objects.is_competitor_leader(competitor=self.competitor))

        self.team_membership.is_leader = False
        self.team_membership.save()
        self.assertFalse(TeamMembership.objects.is_competitor_leader(competitor=self.competitor))

    def test_is_competitor_leader_if_competitor_is_None(self):
        competitor = None
        self.assertFalse(TeamMembership.objects.is_competitor_leader(competitor=competitor))

    def test_get_leader_of_team_if_competitor_is_not_leader(self):
        self.team_membership.is_leader = False
        self.team_membership.save()
        self.assertRaises(AttributeError, TeamMembership.objects.get_leader_of_team(team=self.team))
        self.assertEqual(None, TeamMembership.objects.get_leader_of_team(team=self.team))

    """
    Tests for TeamMembershipQuerySet.
    """

    def test_get_all_team_memberships_for_competitor(self):
        self.assertEqual(self.team_membership, TeamMembership.objects.get_all_team_memberships_for_competitor(
            competitor=self.competitor).first())

    def test_get_all_team_memberships_for_competitor_if_competitor_has_no_team_membership(self):
        competitor = CompetitorFactory()
        self.assertEqual(None, TeamMembership.objects.get_all_team_memberships_for_competitor(
            competitor=competitor).first())

    def test_get_all_team_memberships_for_competitor_if_competitor_is_None(self):
        competitor = None
        self.assertEqual(None, TeamMembership.objects.get_all_team_memberships_for_competitor(
            competitor=competitor).first())

    def test_get_all_team_memberships_for_team(self):
        self.assertEqual(self.team_membership, TeamMembership.objects.get_all_team_memberships_for_team(
            team=self.team).first())

    def test_get_all_team_memberships_for_competitor_with_two_teams(self):
        new_active_season = SeasonFactory(is_active=True)
        room = RoomFactory(season=new_active_season)
        team = TeamFactory(season=new_active_season, room=room)
        team_membership = TeamMembershipFactory(competitor=self.competitor,
                                                team=team,
                                                is_leader=True)
        team_membership.refresh_from_db()
        self.assertEqual(2, TeamMembership.objects.get_all_team_memberships_for_competitor(
            competitor=self.competitor).count())

    def test_get_all_team_memberships_for_team_if_team_has_no_team_membership(self):
        room = RoomFactory(season=self.active_season)
        team = TeamFactory(season=self.active_season, room=room)
        self.assertEqual(None, TeamMembership.objects.get_all_team_memberships_for_team(
            team=team).first())

    def test_get_all_team_memberships_for_team_if_team_is_None(self):
        team = None
        self.assertEqual(None, TeamMembership.objects.get_all_team_memberships_for_team(
            team=team).first())

    def test_get_all_team_memberships_for_team_with_two_competitors(self):
        competitor = CompetitorFactory()
        team_membership = TeamMembershipFactory(competitor=competitor,
                                                team=self.team,
                                                is_leader=False)
        team_membership.refresh_from_db()
        self.assertEqual(2, TeamMembership.objects.get_all_team_memberships_for_team(
            team=self.team).count())

    def test_get_team_membership_of_leader(self):
        self.assertEqual(self.team_membership, TeamMembership.objects.get_team_membership_of_leader(
            team=self.team).first())

    def test_get_team_membership_of_not_leader(self):
        self.team_membership.is_leader = False
        self.team_membership.save()
        self.assertEqual(None, TeamMembership.objects.get_team_membership_of_leader(
            team=self.team).first())

    def test_get_team_memberships_for_active_season(self):
        """
        get_team_memberships_for_active_season() ought to return QuerySet object.
        That's why I'm able to call .first() on it and compare the result to self.team_membership
        """
        self.assertEqual(self.team_membership, TeamMembership.objects.
                         get_team_memberships_for_active_season(competitor=self.competitor).first())

    def test_get_team_memberships_for_active_season_if_competitor_is_None(self):
        competitor = None
        self.assertEqual(None, TeamMembership.objects.
                         get_team_memberships_for_active_season(competitor=competitor).first())

    def test_get_team_membership_for_competitor_leader(self):
        self.assertEqual(self.team_membership, TeamMembership.objects.
                         get_team_membership_for_competitor_leader(competitor=self.competitor).first())

    def test_get_team_membership_for_competitor_leader_is_not_leader(self):
        self.team_membership.is_leader = False
        self.team_membership.save()
        self.assertEqual(None, TeamMembership.objects.
                         get_team_membership_for_competitor_leader(competitor=self.competitor).first())

    def test_get_team_membership_for_competitor_leader_if_competitor_is_None(self):
        self.assertEqual(None, TeamMembership.objects.
                         get_team_membership_for_competitor_leader(competitor=None).first())
        self.assertRaises(AttributeError, TeamMembership.objects.
                          get_team_membership_for_competitor_leader(competitor=None).first())
Esempio n. 11
0
 def setUp(self):
     self.permission = IsTeamLeader()
     self.team = TeamFactory(season__is_active=True)
     self.competitor = CompetitorFactory()
     self.team_membership = TeamMembershipFactory(
         competitor=self.competitor, team=self.team, is_leader=False)
Esempio n. 12
0
class IsTeamLeaderTest(TestCase):
    def setUp(self):
        self.permission = IsTeamLeader()
        self.team = TeamFactory(season__is_active=True)
        self.competitor = CompetitorFactory()
        self.team_membership = TeamMembershipFactory(
            competitor=self.competitor, team=self.team, is_leader=False)

    def test_non_leader_can_not_send_post_request(self):
        data = {'team': self.team}
        request = make_mock_object(user=self.competitor,
                                   method='POST',
                                   data=data)
        self.assertFalse(
            self.permission.has_permission(request=request, view=None))

    def test_non_leader_can_get_view(self):
        request = make_mock_object(user=self.competitor, method='GET')
        self.assertTrue(
            self.permission.has_permission(request=request, view=None))

    def test_non_leader_can_send_post_request(self):
        request = make_mock_object(user=self.competitor, method='POST')
        self.assertTrue(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team_membership))

    def test_non_leader_can_not_send_get_request(self):
        request = make_mock_object(user=self.competitor, method='GET')
        self.assertFalse(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team_membership))

    def test_non_leader_can_not_delete(self):
        request = make_mock_object(user=self.competitor, method='DELETE')
        self.assertFalse(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team_membership))

    def test_leader_can_delete(self):
        self.team_membership.is_leader = True
        self.team_membership.save()

        request = make_mock_object(user=self.competitor, method='DELETE')
        self.assertTrue(
            self.permission.has_object_permission(request=request,
                                                  view=None,
                                                  obj=self.team_membership))

    def test_leader_can_post(self):
        self.team_membership.is_leader = True
        self.team_membership.save()
        data = {'team': self.team}

        request = make_mock_object(user=self.competitor,
                                   method='POST',
                                   data=data)
        self.assertTrue(
            self.permission.has_permission(request=request, view=None))
Esempio n. 13
0
 def setUp(self):
     self.permission = IsTeamLeaderOrReadOnly()
     self.team = TeamFactory()
     self.competitor = CompetitorFactory()
     self.team_membership = TeamMembershipFactory(
         competitor=self.competitor, team=self.team, is_leader=False)