def test_updateMark(): st1 = Student("Ana", 21, 0) st2 = Student("Ion", 14, 1) pb1 = LabProblem("01_01", "fa ceva", 3) pb2 = LabProblem("06_10", "altceva", 5) mrk_repo = MarkInMemoryRepository() mrk1 = Mark(st1, pb1, 10) mrk_repo.addMark(mrk1) mrk2 = Mark(st1, pb2, 6) mrk_repo.addMark(mrk2) mrk3 = Mark(st2, pb2, 9) mrk_repo.addMark(mrk3) mrk_new = Mark(st1, pb1, 7) mrk_repo.updateMark(mrk_new) assert mrk_repo.getMarkById(mrk_new.getId()).getMark() == 7 mrk_new = Mark(st2, pb2, 9) mrk_repo.updateMark(mrk_new) assert mrk_repo.getMarkById(mrk_new.getId()).getMark() == 9 mrk_new = Mark(st1, pb2, 8) mrk_repo.updateMark(mrk_new) assert mrk_repo.getMarkById(mrk_new.getId()).getMark() == 8 mrk_new = Mark(st1, pb1, 5) mrk_repo.updateMark(mrk_new) assert mrk_repo.getMarkById(mrk_new.getId()).getMark() == 5
class TestCaseMarkClass(unittest.TestCase): def setUp(self): self.st1 = Student("ana", 211, 1) self.st2 = Student("mircea", 212, 2) self.pb1 = LabProblem("21_01", "ceva", 3) self.pb2 = LabProblem("01_02", "altceva", 2) self.mark1 = Mark(self.st1, self.pb1, 10) self.mark2 = Mark(self.st2, self.pb1, 5) self.mark3 = Mark(self.st2, self.pb2, 8) def testGetStudent(self): self.assertTrue(self.mark1.getStudent() == self.st1) self.assertTrue(self.mark2.getStudent() == self.st2) self.assertTrue(self.mark3.getStudent() == self.st2) def testGetProblem(self): self.assertTrue(self.mark1.getProblem() == self.pb1) self.assertTrue(self.mark2.getProblem() == self.pb1) self.assertTrue(self.mark3.getProblem() == self.pb2) def testGetMark(self): self.assertTrue(self.mark1.getMark() == 10) self.assertTrue(self.mark2.getMark() == 5) self.assertTrue(self.mark3.getMark() == 8) def testGetId(self): self.assertTrue(self.mark1.getId() == "1_21_01") self.assertTrue(self.mark2.getId() == "2_21_01") self.assertTrue(self.mark3.getId() == "2_01_02")
def testUpdateMark(self): mrk_new = Mark(Student("Ana", 21, 0), LabProblem("01_01", "fa ceva", 3), 7) self.mrk_repo.updateMark(mrk_new) self.assertTrue( self.mrk_repo.getMarkById(mrk_new.getId()).getMark() == 7) mrk_new = Mark(Student("Ion", 14, 1), LabProblem("06_10", "altceva", 5), 9) self.mrk_repo.updateMark(mrk_new) self.assertTrue( self.mrk_repo.getMarkById(mrk_new.getId()).getMark() == 9)
def getMark(self, st_id, pb_num): ''' Returns a mark IN: st_id - integer pb_num - string, labNo_problemNo ''' self.__val.validateIdInRepo(st_id, self.__students) self.__val.validateProblemNumber(pb_num, self.__problems) st = self.__students.getStudentById(st_id) pb = self.__problems.getProblemByNumber(pb_num) mrk = Mark(st, pb, 1) self.__val.validateMarkId(mrk.getId(), self.__catalog) return self.__catalog.getMarkById(mrk.getId())
class TestCaseMarkRepositoryClass(unittest.TestCase): def setUp(self): st1 = Student("Ana", 21, 0) st2 = Student("Ion", 14, 1) pb1 = LabProblem("01_01", "fa ceva", 3) pb2 = LabProblem("06_10", "altceva", 5) self.mrk_repo = MarkInMemoryRepository() self.mrk1 = Mark(st1, pb1, 10) self.mrk_repo.addMark(self.mrk1) self.mrk2 = Mark(st1, pb2, 6) self.mrk_repo.addMark(self.mrk2) self.mrk3 = Mark(st2, pb2, 9) self.mrk_repo.addMark(self.mrk3) def testAddMark(self): self.mrk_repo.addMark( Mark(Student("Ceva", 22, 9), LabProblem("05_07", "dada", 6), 2)) self.assertTrue(self.mrk_repo.getNumberOfMarks() == 4) self.mrk_repo.addMark( Mark(Student("Ceva", 22, 7), LabProblem("08_07", "dada", 6), 6)) self.assertTrue(self.mrk_repo.getNumberOfMarks() == 5) def testRemoveMark(self): self.mrk_repo.removeMark(self.mrk1.getId()) self.assertTrue(self.mrk_repo.getNumberOfMarks() == 2) self.mrk_repo.removeMark(self.mrk2.getId()) self.assertTrue(self.mrk_repo.getNumberOfMarks() == 1) def testGetMarkById(self): self.assertTrue( self.mrk_repo.getMarkById(self.mrk1.getId()).getMark() == 10) self.assertTrue( self.mrk_repo.getMarkById(self.mrk2.getId()).getStudent() == Student("Ana", 21, 0)) def testUpdateMark(self): mrk_new = Mark(Student("Ana", 21, 0), LabProblem("01_01", "fa ceva", 3), 7) self.mrk_repo.updateMark(mrk_new) self.assertTrue( self.mrk_repo.getMarkById(mrk_new.getId()).getMark() == 7) mrk_new = Mark(Student("Ion", 14, 1), LabProblem("06_10", "altceva", 5), 9) self.mrk_repo.updateMark(mrk_new) self.assertTrue( self.mrk_repo.getMarkById(mrk_new.getId()).getMark() == 9)
def test_getMarkById(): st1 = Student("Ana", 21, 0) st2 = Student("Ion", 14, 1) pb1 = LabProblem("01_01", "fa ceva", 3) pb2 = LabProblem("06_10", "altceva", 5) mrk_repo = MarkInMemoryRepository() mrk1 = Mark(st1, pb1, 10) mrk_repo.addMark(mrk1) mrk2 = Mark(st1, pb2, 6) mrk_repo.addMark(mrk2) mrk3 = Mark(st2, pb2, 9) mrk_repo.addMark(mrk3) assert mrk_repo.getMarkById(mrk1.getId()).getMark() == 10 assert mrk_repo.getMarkById(mrk2.getId()).getStudent() == st1
def __removeMarksForProblem(self, problem_number): ''' Removes all the marks with the problem problem_number ''' for mark_key in self.__catalog.getAllMarks(): stud_id, lab_id, pb_id = mark_key.split("_") pb_num = lab_id + "_" + pb_id if pb_num == problem_number: st = Student("", 0, stud_id) pb = self.getProblemByNumber(problem_number) mrk = Mark(st, pb, 0) self.__catalog.removeMark(mrk.getId())
def __removeMarksForStudent(self, st_id): ''' Removes all the marks for the student with st_id IN: st_id - integer ''' for mark_key in self.__catalog.getAllMarks(): stud_id, lab_id, pb_id = mark_key.split("_") if int(stud_id) == st_id: problem_number = lab_id + "_" + pb_id st = self.getStudentById(st_id) pb = LabProblem(problem_number, "", 0) mrk = Mark(st, pb, 0) self.__catalog.removeMark(mrk.getId())
def removeMark(self, st_id, pb_no): ''' It removes a mark from the repository IN: st_id - integer pb_no - string, labNo_problemNo ''' self.__val.validateIdInRepo(st_id, self.__students) self.__val.validateProblemNumber(pb_no, self.__problems) st = self.__students.getStudentById(st_id) pb = self.__problems.getProblemByNumber(pb_no) mark = Mark(st, pb, 1) self.__val.validateMarkId(mark.getId(), self.__catalog) self.__catalog.removeMark(mark.getId()) return "The mark has been removed...\n"
def updateMark(self, st_id, pb_num, mark): ''' Updates the mark for a specific student IN: st_id - integer pb_num - string, labNo_problemNo mark - integer, between 0 and 10 ''' self.__val.validateIdInRepo(st_id, self.__students) self.__val.validateProblemNumber(pb_num, self.__problems) st = self.__students.getStudentById(st_id) pb = self.__problems.getProblemByNumber(pb_num) mrk = Mark(st, pb, mark) self.__val.validateMark(mrk) self.__val.validateMarkId(mrk.getId(), self.__catalog) self.__catalog.updateMark(mrk) return "The mark has been updated... \n"