def test_login_team_selection_no_leader(self):
        """
        Ensure that when a user joins a team without a team leader they are selected as the leader
        """
        with app.test_client() as testClient:
            ###Register a tutor and student and login the user###
            self.register(testClient, 'Test tutor', '*****@*****.**',
                          'password', 'password', 'test entry')
            self.register(testClient, 'Test student', '*****@*****.**',
                          'password', 'password', 'test tutor')
            self.loginuser(testClient, '*****@*****.**', 'password')

            ###Test that the select team feature works###
            response = self.selectTeam(testClient, "test tutor",
                                       "test tutor team 1")
            checkUserTeam = getTeamFromStudentID(
                getStudentID('*****@*****.**')[0]['STUDENT_ID'])

            self.assertEqual(response.status_code, 200)
            self.assert_template_used('mobile/First_Choose.html')
            self.assertEqual(checkUserTeam[0]['TEAM_ID'],
                             getTeamID('test tutor team 1')[0]['TEAM_ID'])

            ###Select a route and eneter a new name ensure the changes save###
            response = self.selectRoute(testClient, 1, "TEST NEW NAME")
            self.assertEqual(response.status_code, 200)
            self.assert_template_used('mobile/Clue_Page.html')
            checkTeam = getTeamID("TEST NEW NAME")
            self.assertGreater(len(checkTeam), 0)
            checkRoute = getRouteID(session['teamID'])
            self.assertEqual(checkRoute[0]['CURRENT_ROUTE_ID'], 1)
    def test_login_team_set(self):
        """
        Login a user who already has their team set
        """
        with app.test_client() as testClient:
            ###Create a student and join a team and select route###
            self.loginuser(testClient, '*****@*****.**', 'password')
            checkUserTeam = getTeamFromStudentID(
                getStudentID('*****@*****.**')[0]['STUDENT_ID'])

            if len(checkUserTeam
                   ) == 0 or checkUserTeam[0]['TEAM_NAME'] != "TEST NEW NAME":
                self.selectTeam(testClient, "test tutor", "test tutor team 1")
                self.selectRoute(testClient, 1, "TEST NEW NAME")
        app.test_client().delete()
        with app.test_client() as testClient:
            ###Login to the user and ensure they are redirected to the correct question###
            self.register(testClient, "test user2", "*****@*****.**",
                          "password", "password", "test tutor")
            self.loginuser(testClient, '*****@*****.**', 'password')
            response = self.selectTeam(testClient, "test tutor",
                                       "TEST NEW NAME")
            self.assertEqual(response.status_code, 200)
            self.assert_template_used('mobile/Clue_Page.html')
            checkUserTeam = getTeamFromStudentID(
                getStudentID('*****@*****.**')[0]['STUDENT_ID'])
            self.assertEqual(checkUserTeam[0]['TEAM_ID'],
                             getTeamID('TEST NEW NAME')[0]['TEAM_ID'])
示例#3
0
    def test_dashboard_Assign_Team_Leader(self):
        """
        Register a new tutor and two new users, then assign one user as the team leader of the tutors first team
        And Then assign the second to be the team leader. Assert that these changes are made
        """
        # Set up the student with a team
        with app.test_client() as testClient:
            ###Register Users###
            self.register(testClient, self.TUTORNAME, self.TUTOREMAIL,
                          self.PASSWORD, self.PASSWORD, self.NOTAPPLICABLE)
            self.registerIndividual(testClient, self.STUDENTNAME,
                                    self.STUDENTEMAIL, self.PASSWORD,
                                    self.PASSWORD, self.TUTORNAME.lower())
            self.registerIndividual(testClient, self.STUDENTNAME + "2",
                                    self.STUDENTEMAIL2, self.PASSWORD,
                                    self.PASSWORD, self.TUTORNAME.lower())

            ###Login user1 and assign team and route###
            self.loginuser(testClient, self.STUDENTEMAIL, self.PASSWORD)
            self.selectTeam(testClient, self.TUTORNAME.lower(), self.TEAMNAME)
            self.selectRoute(testClient, 1, self.TEAMNAME)
            session.clear

            ###Login user2 and assign team###
            self.loginuser(testClient, self.STUDENTEMAIL2, self.PASSWORD)
            self.selectTeam(testClient, self.TUTORNAME.lower(), self.TEAMNAME)

            ###Check current teamleader is user 1###
            currentLeader = getTeamLeader(
                getTeamID(self.TEAMNAME)[0]['TEAM_ID'])[0]['TEAM_LEADER']
            studentID = self.getStudentIDFromEmail(self.STUDENTEMAIL)
            self.assertEqual(currentLeader, studentID)

            ###Login tutor and assign new team leader (user 2)###
            self.loginuser(testClient, self.TUTOREMAIL, self.PASSWORD)
            response = self.assignNewTeamLeader(testClient, self.TEAMNAME,
                                                self.STUDENTEMAIL2)

            ###Check the team leader is now user 2###
            newLeader = getTeamLeader(getTeamID(
                self.TEAMNAME)[0]['TEAM_ID'])[0]['TEAM_LEADER']
            studentID2 = self.getStudentIDFromEmail(self.STUDENTEMAIL2)
            self.assertEqual(currentLeader, studentID)
            self.assert_template_used('Desktop/Game_Keeper_Page.html')
示例#4
0
 def selectTeam(self, testClient, tutorName, teamName):
     """
     Selects a team from the database given a team name and tutor name
     :return: object
     """
     return testClient.post(
         '/assignTeam',
         data=dict(tutor=getTutorID(tutorName, "string")[0]['TUTOR_ID'],
                   team=getTeamID(teamName)[0]['TEAM_ID']),
         follow_redirects=True)
示例#5
0
 def assignNewTeamLeader(self, testClient, teamname, email):
     return testClient.post('/assignTeamLeader',
                            data=dict(
                                team=getTeamID(teamname)[0]['TEAM_ID'],
                                student=self.getStudentIDFromEmail(email)),
                            follow_redirects=True)