Пример #1
0
class ProfessorTest(unittest.TestCase):

    # the testing framework will automatically call for every single test we run
    # in our case, it can also serve as constructor test
    def setUp(self):
        self.public = True
        self.private = False

        self.L1 = Student("1", "L1", self.private)
        self.M11 = Student(11, "M11", self.private)
        self.T1 = Team( "Team1", 1, self.public, self.L1 )

        self.Prof = Professor("golds")

        self.C1 = Course(10000, "CSCI-4440", 1, 75)
        self.C2 = Course(10001, "CSCI-4460", 1, 75)

    # test all getters
    def test_gets(self):
        self.assertEqual(self.Prof.getID(), "golds")
        self.assertEqual(len( self.Prof.getCourses() ), 0)

    # test all setters
    def test_sets(self):
        self.Prof.setID("silvers")
        self.assertEqual(self.Prof.getID(), "silvers")

    def test_addAndRemoveCourses(self):
        # add two courses
        self.assertTrue( self.Prof.addCourse(self.C1) )
        self.assertTrue( self.Prof.addCourse(self.C2) )
        self.assertEqual( len( self.Prof.getCourses() ), 2 )
        self.assertEqual( (self.Prof.getCourses())[0].getCRN(), 10000 )
        self.assertEqual( (self.Prof.getCourses())[1].getCRN(), 10001 )

        # invalid add
        self.assertFalse( self.Prof.addCourse(self.C1) )

        # remove one course
        self.assertTrue( self.Prof.removeCourse(self.C1) )
        self.assertEqual( len( self.Prof.getCourses() ), 1 )
        self.assertEqual( (self.Prof.getCourses())[0].getCRN(), 10001 )

        # remove a non-existing course should fail
        self.assertFalse( self.Prof.removeCourse(self.C1) )

        # remove another course
        self.assertTrue( self.Prof.removeCourse(self.C2) )
        self.assertEqual( len( self.Prof.getCourses() ), 0 )


    def test_addAndDeleteStudentTags(self):
        # valid adds
        self.assertTrue( self.Prof.addStudentTag(self.L1, "EDT") )
        self.assertTrue( self.Prof.addStudentTag(self.L1, "Tuesday") )
        self.assertEqual( len( self.L1.getTags() ), 2 )

        # invalid adds, duplicates
        self.assertFalse( self.Prof.addStudentTag(self.L1, "EDT") )
        self.assertEqual( len( self.L1.getTags() ), 2 )

        self.assertEqual( (self.L1.getTags())[0], "EDT" )
        self.assertEqual( (self.L1.getTags())[1], "Tuesday" )

        # invalid deletes
        self.assertFalse( self.Prof.deleteStudentTag(self.L1, "PDT") )
        self.assertEqual( len( self.L1.getTags() ), 2 )

        # valid deletes
        self.assertTrue( self.Prof.deleteStudentTag(self.L1, "EDT") )
        self.assertEqual( len( self.L1.getTags() ), 1 )
        self.assertEqual( (self.L1.getTags())[0], "Tuesday" )

        self.assertTrue( self.Prof.deleteStudentTag(self.L1, "Tuesday") )
        self.assertEqual( len( self.L1.getTags() ), 0 )

    def test_addAndDeleteTeamTags(self):
        # valid adds
        self.assertTrue( self.Prof.addTeamTag(self.T1, "EDT") )
        self.assertTrue( self.Prof.addTeamTag(self.T1, "Tuesday") )
        self.assertEqual( len( self.T1.getTags() ), 2 )

        # invalid adds, duplicates
        self.assertFalse( self.Prof.addTeamTag(self.T1, "EDT") )
        self.assertEqual( len( self.T1.getTags() ), 2 )

        self.assertEqual( (self.T1.getTags())[0], "EDT" )
        self.assertEqual( (self.T1.getTags())[1], "Tuesday" )

        # invalid deletes
        self.assertFalse( self.Prof.deleteTeamTag(self.T1, "PDT") )
        self.assertEqual( len( self.T1.getTags() ), 2 )

        # valid deletes
        self.assertTrue( self.Prof.deleteTeamTag(self.T1, "EDT") )
        self.assertEqual( len( self.T1.getTags() ), 1 )
        self.assertEqual( (self.T1.getTags())[0], "Tuesday" )

        self.assertTrue( self.Prof.deleteTeamTag(self.T1, "Tuesday") )
        self.assertEqual( len( self.T1.getTags() ), 0 )


    def test_addAndRemoveStudents(self):
        # valid adds
        self.assertTrue( self.Prof.addStudentToTeam(self.T1, self.M11) )
        self.assertEqual( len( self.M11.getTeams() ), 1 )
        self.assertEqual( len( self.T1.getMembers() ), 2 )

        # invalid adds, duplicates
        self.assertFalse( self.Prof.addStudentToTeam(self.T1, self.M11) )
        self.assertEqual( len( self.M11.getTeams() ), 1 )
        self.assertEqual( len( self.T1.getMembers() ), 2 )

        # valid removes
        self.assertTrue( self.Prof.removeStudentFromTeam(self.T1, self.M11) )
        self.assertEqual( len( self.M11.getTeams() ), 0 )
        self.assertEqual( len( self.T1.getMembers() ), 1 )

        # invalid remove
        self.assertFalse( self.Prof.removeStudentFromTeam(self.T1, self.M11) )
        self.assertEqual( len( self.M11.getTeams() ), 0 )
        self.assertEqual( len( self.T1.getMembers() ), 1 )


    def test_addAndRemoveAssignments(self):
        # valid adds
        # addAssignment(course, title, min, max, deadline)
        self.assertTrue( self.Prof.addAssignment(self.C1, "A1", 1, 4, 120220201159) )
        self.assertEqual( len( self.C1.getAssignments() ), 1 )

        # invalid adds, duplicates
        self.assertFalse( self.Prof.addAssignment(self.C1, "A1", 1, 4, 120220201159) )
        self.assertEqual( len( self.C1.getAssignments() ), 1 )

        A1 = (self.C1.getAssignments())[0]
        # invalid edit
        # editAssignment(self, assignment, title, min, max, deadline)
        self.assertFalse( self.Prof.editAssignment(None, "newA1", None, None, None) )

        # valid edits
        self.assertTrue( self.Prof.editAssignment(A1, "newA1", None, None, None) )
        self.assertEqual( A1.getTitle(), "newA1")

        # valid deletes
        self.assertTrue( self.Prof.deleteAssignment(self.C1, A1) )
        self.assertEqual( len( self.C1.getAssignments() ), 0 )
Пример #2
0
class TeamTest(unittest.TestCase):

    # the testing framework will automatically call for every single test we run
    # in our case, it can also serve as constructor test
    def setUp(self):
        self.public = True
        self.private = False

        self.L1 = Student(1, "L1", self.private)
        self.L2 = Student(2, "L2", self.private)

        self.M11 = Student(11, "M11", self.private)
        self.M12 = Student(12, "M12", self.private)

        # initialize Team Objects Team(name, id, publicity, leader)
        #                                                     v
        #                                        Student(id, username, publicity)
        self.Team1 = Team("Team1", 1, self.public, self.L1)
        self.Team2 = Team("Team2", 2, self.private, self.L2)

    # test all getters
    def test_gets(self):
        self.assertEqual(self.Team1.getName(), "Team1")
        self.assertEqual(self.Team1.getID(), 1)
        self.assertTrue(self.Team1.getPublicity())
        self.assertEqual(self.Team1.getLeader().getID(), 1)
        self.assertEqual(len(self.Team1.getTags()), 0)
        self.assertEqual(len(self.Team1.getMembers()), 1)
        self.assertEqual((self.Team1.getMembers())[0].getID(), 1)

    # test all setters
    def test_sets(self):
        self.Team1.setName("newTeam1")
        self.assertEqual(self.Team1.getName(), "newTeam1")

        self.Team1.setPublicity(self.private)
        self.assertFalse(self.Team1.getPublicity())

    def test_addAndRemoveMembers(self):
        # add two members to Team1
        self.assertTrue(self.Team1.addMember(self.M11))
        self.assertTrue(self.Team1.addMember(self.M12))
        self.assertEqual(len(self.Team1.getMembers()), 3)
        self.assertEqual((self.Team1.getMembers())[0].getID(), 1)
        self.assertEqual((self.Team1.getMembers())[1].getID(), 11)
        self.assertEqual((self.Team1.getMembers())[2].getID(), 12)

        # invalid add
        self.assertFalse(self.Team1.addMember(self.M11))

        # remove one member
        self.assertTrue(self.Team1.removeMember(self.M11))
        self.assertEqual(len(self.Team1.getMembers()), 2)
        self.assertEqual((self.Team1.getMembers())[0].getID(), 1)
        self.assertEqual((self.Team1.getMembers())[1].getID(), 12)

        # remove team leader should fail
        self.assertFalse(self.Team1.removeMember(self.L1))
        # remove a non-existing member should fail
        self.assertFalse(self.Team1.removeMember(self.M11))

        # remove another member
        self.assertTrue(self.Team1.removeMember(self.M12))
        self.assertEqual(len(self.Team1.getMembers()), 1)
        self.assertEqual((self.Team1.getMembers())[0].getID(), 1)

    def test_addAndDeleteTags(self):
        # valid adds
        self.assertTrue(self.Team1.addTag("EDT"))
        self.assertTrue(self.Team1.addTag("Tuesday"))
        self.assertEqual(len(self.Team1.getTags()), 2)

        # invalid adds, duplicates
        self.assertFalse(self.Team1.addTag("EDT"))
        self.assertEqual(len(self.Team1.getTags()), 2)

        self.assertEqual((self.Team1.getTags())[0], "EDT")
        self.assertEqual((self.Team1.getTags())[1], "Tuesday")

        # invalid deletes
        self.assertFalse(self.Team1.deleteTag("PDT"))
        self.assertEqual(len(self.Team1.getTags()), 2)

        # valid deletes
        self.assertTrue(self.Team1.deleteTag("EDT"))
        self.assertEqual(len(self.Team1.getTags()), 1)
        self.assertEqual((self.Team1.getTags())[0], "Tuesday")

        self.assertTrue(self.Team1.deleteTag("Tuesday"))
        self.assertEqual(len(self.Team1.getTags()), 0)

    def test_changeLeader(self):
        # invalid change (not a member in the team)
        self.assertFalse(self.Team1.changeLeader(self.M11))
        self.assertEqual(len(self.Team1.getMembers()), 1)
        self.assertEqual(self.Team1.getLeader().getID(), 1)

        # invalid change (already a leader)
        self.assertFalse(self.Team1.changeLeader(self.L1))
        self.assertEqual(len(self.Team1.getMembers()), 1)
        self.assertEqual(self.Team1.getLeader().getID(), 1)

        # valid change
        self.Team1.addMember(self.M11)
        self.assertEqual(len(self.Team1.getMembers()), 2)
        self.assertTrue(self.Team1.changeLeader(self.M11))
        self.assertEqual(self.Team1.getLeader().getID(), 11)

    def test_dismiss(self):
        self.Team1.dismiss()
        self.assertEqual(len(self.Team1.getMembers()), 0)
        self.assertEqual(len(self.Team1.getTags()), 0)