def test_add_searchById_searchByName_remove_update_repo(self): self.assertEqual(self._repo.size(), 0) self._repo.add(self._discipline1) self._repo.add(self._discipline2) self.assertEqual(self._repo.size(), 2) self._repo.remove_repo(self._discipline2) self.assertEqual(self._repo.size(), 1) self._other_disc_same_id = Discipline(50, "Biology") self.assertEqual(self._other_disc_same_id.get_disc_name(), "Biology") self.assertEqual(self._other_disc_same_id.get_id_disc(), 50) key_disc = Discipline(self._discipline1.get_id_disc(), None) disc_found = self._repo.search(key_disc) self.assertEqual(disc_found.get_disc_name(), self._discipline1.get_disc_name()) try: self._repo.add(self._other_disc_same_id) assert (False) except RepoError as re: assert (str(re) == "id existent!\n") self._other_discipline = Discipline(100, "Mapping") try: self._repo.search(self._other_discipline) assert (False) except RepoError as re: assert (str(re) == "id inexistent!\n")
def test_create_discipline(self): self.assertEqual(self._discipline1.get_id_disc(), 50) self.assertEqual(self._discipline1.get_disc_name(), "Math") self._discipline1.set_disc_name("Trigo") self._discipline3.set_id_disc(49) self.assertEqual(self._discipline1.get_disc_name(), "Trigo") self.assertEqual(self._discipline3.get_id_disc(), 49) self._other_disc_same_id = Discipline(50, "Sport") self.assertEqual(self._other_disc_same_id.get_id_disc(), 50) self.assertEqual(self._other_disc_same_id.get_disc_name(), "Sport") self.assertEqual(self._discipline1.get_id_disc(), self._other_disc_same_id.get_id_disc())
def get_disc_by_id(self, disc_id): """ Returns all disciplines with the given id :params disc_id = given id """ key = Discipline(disc_id, None) return self._repoDisciplines.search(key)
def setUp(self): self._discipline1 = Discipline(50, "Math") self._discipline2 = Discipline(80, "Drawing") self._discipline3 = Discipline(90, "Flying") self._bad_id_discipline = Discipline(-20, "Algebra") self._bad_name_discipline = Discipline(20, "") self._validDisc = ValidatorDiscipline() self._repo = Repo() self._undoService = ServiceUndo() self._servDiscipline = ServiceDisciplines(self._repo, self._validDisc, self._undoService)
def test_add_removebyID_average_SERVICE(self): #self._gradeService.give_grade(4, 5, 6) #grades = self._gradeService.get_grades() #self.assertEqual(len(grades) ,1) self.assertEqual(self._gradeService.get_grades_no(), 0) self._gradeService.give_grade(9, 3, 5) self._gradeService.give_grade(9, 4, 8) self.assertEqual(self._gradeService.get_grades_no(), 2) self._gradeService.remove_grade_by_idStud_and_grade(9, 3, 5) self.assertEqual(self._gradeService.get_grades_no(), 1) self._gradeService.remove_grade_by_disc_id(4) self.assertEqual(self._gradeService.get_grades_no(), 0) self._gradeService.give_grade(1, 8, 10) self._gradeService.remove_grade_by_student_id(1) self.assertEqual(self._gradeService.get_grades_no(), 0) self._gradeService.give_grade(1, 1, 1) grades = self._gradeService.get_grades() self.assertEqual(len(grades), 1) self._serviceStudent.add_student(1, "Jane") self._serviceStudent.add_student(2, "Marc") self._gradeService.give_grade(2, 2, 1) self._gradeService.give_grade(1, 3, 2) failing_students = self._gradeService.grades_average() self.assertEqual(len(failing_students), 3) average_disc = self._gradeService.average_student_discipline(2) self.assertEqual(average_disc, 1.0) best_studs = self._gradeService.best_students() self.assertEqual(len(best_studs), 2) self.assertEqual(best_studs[0].get_student(), Student(1, "Jane")) self.assertEqual(best_studs[0].get_stud_average(), 1.5) self._repoDisciplines.add(Discipline(2, "Ala")) self._repoDisciplines.add(Discipline(3, "Kaka")) grade = self._gradeService.find_by_id(2) self.assertEqual(grade.get_id_disc(), 2) best_disc = self._gradeService.best_disciplines() self.assertEqual(len(best_disc), 3) self.assertEqual(best_disc[0].get_discipline(), None) self.assertEqual(best_disc[1].get_disc_average(), 1.0)
def test_add_searchById_searchByName_remove_update_Service(self): self.assertEqual(self._servDiscipline.get_disc_no(), 0) self._servDiscipline.add_disc(30, "Bio") self._servDiscipline.add_disc(31, "Hiking") self.assertEqual(self._servDiscipline.get_disc_no(), 2) self._servDiscipline.remove_disc(31) self.assertEqual(self._servDiscipline.get_disc_no(), 1) disc_found = self._servDiscipline.get_disc_by_id(30) self.assertEqual(disc_found.get_disc_name(), "Bio") try: self._servDiscipline.add_disc(-23, "Chemistry") assert (False) except ValidError as ve: assert (str(ve) == "id invalid!\n") try: self._servDiscipline.add_disc(3, "") assert (False) except ValidError as ve: assert (str(ve) == "name invalid!\n") try: self._servDiscipline.add_disc(30, "Guitar") assert (False) except RepoError as re: assert (str(re) == "id existent!\n") try: self._servDiscipline.get_disc_by_id(98) assert (False) except RepoError as re: assert (str(re) == "id inexistent!\n") new = Discipline(30, "Piano") self._servDiscipline.update_discipline(new) self.assertEqual(new.get_disc_name(), "Piano") self._servDiscipline.add_disc(55, "Violin") self._servDiscipline.add_disc(56, "Games") self._servDiscipline.add_disc(57, "Coding") self._servDiscipline.add_disc(58, "Nustiu") disciplines = self._servDiscipline.get_discipline_by_name("i") self.assertEqual(len(disciplines), 4)
def create_init_discs(self): #lista_disc = [(1,"Bio"), (2,"Algebra"), (3,"Geometry"), (4,"Informathics"), (5,"Chemistry"), (6,"Sport"), (7,"Marketing"), (8,"Economics"), (9,"Volunteering"), (10,"Nutrition")] lista_disc = ["Bio", "Algebra", "Geometry", "Informathics", "Chemistry", "Sport", "Marketing", "Economics", "Volunteering", "Nutrition"] i = 10 while i > 0: #d = Discipline(id_base, random.choice(lista_disc)) idx_dis = random.randrange(0, len(lista_disc)) d = Discipline(idx_dis, lista_disc[idx_dis]) #id_base+=1 try: self._repoDisciplines.add(d) i-=1 except RepoError: pass
def add_disc(self, id_disc, name_disc, from_undo = False): """ Creates a discipline that will be added in the repoDisciplines :params id_disc = The id of the new discipline :params name_disc = The name of the new discipline :params from_undo: False if the function eas not called from the undo option, True otherwise """ discipline = Discipline(id_disc, name_disc) self._validatorDiscipline.validate_disc(discipline) self._repoDisciplines.add(discipline) if not from_undo: function = FunctionCall(self.add_disc,id_disc , name_disc, True) reverse_function = FunctionCall(self.remove_disc , id_disc, True) operation = Operation(function, reverse_function) self._undoService.record_operation(operation)
def remove_disc(self , id_disc, from_undo = False): """ Removes disciplines with the given id :params id_disc = The id of the discipline to be deleted :params from_undo :False if the function eas not called from the undo option, True otherwise """ disc= Discipline(id_disc, None) deleted_disc = self._repoDisciplines.search(disc) self._repoDisciplines.remove_repo(disc) if not from_undo: function = FunctionCall(self.remove_disc, id_disc, True) reverse_function = FunctionCall(self.add_disc, id_disc, deleted_disc.get_disc_name(), True) operation = Operation(function, reverse_function) cascaded_operation = CascadedOperation() cascaded_operation.add(operation) self._undoService.record_operation(cascaded_operation)
def _ui_update_disc(self, params): if len(params) != 2: raise ValueError("No. params invalid! Must be 2") disc_id = int(params[0]) disc_name = params[1] self._serviceDisciplines.update_discipline(Discipline(disc_id, disc_name))
class TesteDiscipline(unittest.TestCase): def setUp(self): self._discipline1 = Discipline(50, "Math") self._discipline2 = Discipline(80, "Drawing") self._discipline3 = Discipline(90, "Flying") self._bad_id_discipline = Discipline(-20, "Algebra") self._bad_name_discipline = Discipline(20, "") self._validDisc = ValidatorDiscipline() self._repo = Repo() self._undoService = ServiceUndo() self._servDiscipline = ServiceDisciplines(self._repo, self._validDisc, self._undoService) def test_create_discipline(self): self.assertEqual(self._discipline1.get_id_disc(), 50) self.assertEqual(self._discipline1.get_disc_name(), "Math") self._discipline1.set_disc_name("Trigo") self._discipline3.set_id_disc(49) self.assertEqual(self._discipline1.get_disc_name(), "Trigo") self.assertEqual(self._discipline3.get_id_disc(), 49) self._other_disc_same_id = Discipline(50, "Sport") self.assertEqual(self._other_disc_same_id.get_id_disc(), 50) self.assertEqual(self._other_disc_same_id.get_disc_name(), "Sport") self.assertEqual(self._discipline1.get_id_disc(), self._other_disc_same_id.get_id_disc()) def test_validator_discipline(self): self._validDisc.validate_disc(self._discipline1) try: self._validDisc.validate_disc(self._bad_id_discipline) assert (False) except ValidError as ve: assert (str(ve) == "id invalid!\n") try: self._validDisc.validate_disc(self._bad_name_discipline) assert (False) except ValidError as ve: assert (str(ve) == "name invalid!\n") def test_get_all_discs(self): self._servDiscipline.add_disc(1, "Fifi") self._servDiscipline.add_disc(2, "Gigi") disciplines = self._servDiscipline.get_disc() self.assertEqual(len(disciplines), 2) def test_add_searchById_searchByName_remove_update_repo(self): self.assertEqual(self._repo.size(), 0) self._repo.add(self._discipline1) self._repo.add(self._discipline2) self.assertEqual(self._repo.size(), 2) self._repo.remove_repo(self._discipline2) self.assertEqual(self._repo.size(), 1) self._other_disc_same_id = Discipline(50, "Biology") self.assertEqual(self._other_disc_same_id.get_disc_name(), "Biology") self.assertEqual(self._other_disc_same_id.get_id_disc(), 50) key_disc = Discipline(self._discipline1.get_id_disc(), None) disc_found = self._repo.search(key_disc) self.assertEqual(disc_found.get_disc_name(), self._discipline1.get_disc_name()) try: self._repo.add(self._other_disc_same_id) assert (False) except RepoError as re: assert (str(re) == "id existent!\n") self._other_discipline = Discipline(100, "Mapping") try: self._repo.search(self._other_discipline) assert (False) except RepoError as re: assert (str(re) == "id inexistent!\n") def test_add_searchById_searchByName_remove_update_Service(self): self.assertEqual(self._servDiscipline.get_disc_no(), 0) self._servDiscipline.add_disc(30, "Bio") self._servDiscipline.add_disc(31, "Hiking") self.assertEqual(self._servDiscipline.get_disc_no(), 2) self._servDiscipline.remove_disc(31) self.assertEqual(self._servDiscipline.get_disc_no(), 1) disc_found = self._servDiscipline.get_disc_by_id(30) self.assertEqual(disc_found.get_disc_name(), "Bio") try: self._servDiscipline.add_disc(-23, "Chemistry") assert (False) except ValidError as ve: assert (str(ve) == "id invalid!\n") try: self._servDiscipline.add_disc(3, "") assert (False) except ValidError as ve: assert (str(ve) == "name invalid!\n") try: self._servDiscipline.add_disc(30, "Guitar") assert (False) except RepoError as re: assert (str(re) == "id existent!\n") try: self._servDiscipline.get_disc_by_id(98) assert (False) except RepoError as re: assert (str(re) == "id inexistent!\n") new = Discipline(30, "Piano") self._servDiscipline.update_discipline(new) self.assertEqual(new.get_disc_name(), "Piano") self._servDiscipline.add_disc(55, "Violin") self._servDiscipline.add_disc(56, "Games") self._servDiscipline.add_disc(57, "Coding") self._servDiscipline.add_disc(58, "Nustiu") disciplines = self._servDiscipline.get_discipline_by_name("i") self.assertEqual(len(disciplines), 4) def test_init_discs(self): self._servDiscipline.create_init_discs() self.assertEqual(self._repo.size(), 10)