def setUp(self): self.fileName = "testassig.txt" self.repo = AssignmentFileRepository(self.fileName) self.repo.removeAll() self.person3 = Person("5", "Andrei", "Roman") self.person1 = Person("2", "Alex", "Caracal") self.person2 = Person("3", "Andrada", "Valcea") self.event1 = Event("1", "20/11/2012", "10:58", "Funeral") self.event2 = Event("2", "20/09/2013", "11:21", "Party") self.event3 = Event("3", "19/06/2017", "12:31", "Wedding") self.assignment1 = Assignment(self.person1.get_id_pers(), self.event1.get_id_event()) self.assignment2 = Assignment(self.person2.get_id_pers(), self.event2.get_id_event()) self.assignment3 = Assignment(self.person3.get_id_pers(), self.event3.get_id_event()) self.repo.store_assig(self.assignment1) self.repo.store_assig(self.assignment2) self.repo.store_assig(self.assignment3) self.assertEqual(self.repo.size(), 3) self.repo2 = AssignmentFileRepository(self.fileName) self.assignemnt4 = Assignment(self.person1.get_id_pers(), self.event2.get_id_event()) self.repo2.store_assig(self.assignemnt4)
def testRmv(self): self.aCtr.add(deepcopy(self.a)) self.aCtr.add(Assignment(2, "Algebra", "24/01/2019")) self.assertEqual(len(self.aCtr.getAll()), 2) self.aCtr.remove(1) self.assertEqual(len(self.aCtr.getAll()), 1) self.assertEqual(self.aCtr.getAll()[0], Assignment(2, "Algebra", "24/01/2019")) self.aCtr.remove(2, OperationsCascade())
def test_create_assignment(self): ''' Functon that tests the create assignment feature ''' person = Person('1', 'Geo', 'Olanu') event = Event('1', "20/07/2019", "10:58", "Wedding") assignment = Assignment(person.get_id_pers(), event.get_id_event()) self.assertEqual(assignment.get_person_id(), '1') self.assertEqual(assignment.get_event_id(), '1')
def populateAsCtrSTATIC(assigCtrl): assigCtrl.add(Assignment(1, "ASC", "30/12/2014")) assigCtrl.add(Assignment(2, "Fp", "30/11/2014")) assigCtrl.add(Assignment(3, "ASC2", "20/10/2014")) assigCtrl.add(Assignment(4, "Calculus1", "30/12/2014")) assigCtrl.add(Assignment(5, "Algebra1", "30/12/2014")) assigCtrl.add(Assignment(6, "Cryptology", "15/08/2014")) assigCtrl.add(Assignment(7, "Calculus2", "13/10/2014")) assigCtrl.add(Assignment(8, "Algebra2", "20/01/2014")) assigCtrl.add(Assignment(9, "Self Development", "17/02/2014")) assigCtrl.add(Assignment(10, "Teaching", "19/05/2014"))
def test_addassignmentservice(self): assing = str(Assignment('123','Homework due Tomorrow', '2021-12-22')) val = Assignment_Validator() #assing = Assignment('123', 'Homework due Tomorrow', '2021-12-22') self.assertEqual(val.check_if_deadline_passed('2020-12-12'), False) self.assertEqual(val.check_if_deadline_passed('20202-12-12'), False) self.assertEqual(val.check_if_deadline_passed('2020-12-32'), False) self.assertEqual(val.check_if_deadline_passed('2020-10-10-10'), False) self.assertEqual(val.validate_datetime('2020-12-32'), False) self.assertEqual(val.validate_datetime('2020-10-10-10'), False) self.assertEqual(val.validate_datetime('2020-10-30'), False) try: val.validate(self.assing_list.list_of_assignments, Assignment('123', 'Ho', '2020-10-20')) self.assertFalse('not ok') except AssignmentValidatorException as ve: s = str(ve) self.assertTrue('ok') try: val.validate(self.assing_list.list_of_assignments,Assignment('123','Ho', '20212-12-22')) self.assertFalse('not ok') except AssignmentValidatorException as ve: s = str(ve) self.assertTrue('ok') self.assing_list.add_assignment('123', 'Homework due Tomorrow', '2021-12-22') try: self.assing_list.add_assignment('123', 'Homework due Tomorrow', '2021-12-22') self.assertFalse('Not good') except AssignmentException: self.assertTrue('OK') self.assertEqual(len(self.assing_list), 1) self.assing_list.add_assignment('124', 'Homework due Tomorrow', '2021-12-22') self.assing_list.add_assignment('125', 'Homework due Tomorrow', '2021-12-22') self.assing_list.add_assignment('126', 'Homework due Tomorrow', '2021-12-22') self.assing_list.add_assignment('127', 'Homework due Tomorrow', '2021-12-22') self.assertEqual(len(self.assing_list), 5) try: self.assing_list.add_assignment('128', 'Ho', '2021-12-22') self.assertFalse('Not good') except AssignmentException: self.assertTrue('OK') try: self.assing_list.add_assignment('128', 'Homework due Tomorrow', '2021-12-222') self.assertFalse('Not good') except AssignmentException: self.assertTrue('OK') try: self.assing_list.add_assignment('123', 'Homework due Tomorrow', '2021-12-22') self.assertFalse('Not good') except AssignmentException: self.assertTrue('OK')
def test_updateassignmentrepo(self): assing = Assignment('123', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) assing = Assignment('124', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) assing = Assignment('125', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) assing = Assignment('126', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) self.assing_repo.update_assignment_in_list(1,'2022-11-22') self.assertEqual(self.assing_repo[1].Deadline, '2022-11-22')
def test_removeassignmentrepo(self): assing = Assignment('123', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) self.assing_repo.remove_assignment_from_list(assing) assing = Assignment('124', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) self.assing_repo.remove_assignment_from_list(assing) assing = Assignment('125', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) self.assing_repo.remove_assignment_from_list(assing) assing = Assignment('126', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) self.assing_repo.remove_assignment_from_list(assing) self.assertEqual(len(self.assing_repo.assignments), 0)
def setUp(self): student_repo = studentRepo() assignment_repo = assignmentRepo() grade_repo = gradeRepo() student_validator = Student_Validator() assignment_validator = Assignment_Validator() grade_validator = Grade_Validator() self._undo_service = UndoService() student_service = studentService(student_repo, grade_repo, student_validator, self._undo_service ) assignment_service = assignmentService(assignment_repo, grade_repo, assignment_validator, self._undo_service) grade_service = gradeService(student_repo, assignment_repo, grade_repo, student_validator, assignment_validator,grade_validator, self._undo_service) student_validator = Student_Validator() assignment_validator = Assignment_Validator() grade_validator = Grade_Validator() self._student_list = student_service self._assignment_list = assignment_service self._grade_list = grade_service self.list_s.add_student('124', 'Mark Park', '912') self.list_s.add_student('125', 'Mark Park', '912') self.list_s.add_student('126', 'Mark Park', '912') self.list_s.add_student('127', 'Mark Park', '913') self.list_s.add_student('128', 'Mark Park', '914') self.assing_list.add_assignment('124', 'Homework due Tomorrow', '2021-12-22') self.assing_list.add_assignment('125', 'Homework due Tomorrow', '2021-12-22') self.assing_list.add_assignment('126', 'Homework due Tomorrow', '2021-12-22') self.assing_list.list_of_assignments.add_assingment_to_list(Assignment('127', 'Homework due Tomorrow', '2020-10-22'))
def getAssignments(nb): lista = [] idLi = getListOfIDs(nb) descLi = getListOfAssignName(nb) dateLi = genListOfDates(nb) for i in range(nb): lista.append(Assignment(idLi[i], descLi[i], dateLi[i])) return lista
def test_add(self): self.assertEqual(len(self.__assignment_repository), 0) self.__assignment_repository.add(self.__assignment) self.assertEqual(len(self.__assignment_repository), 1) assignment2 = Assignment(None, "Test2", date(2018, 11, 19)) self.__assignment_repository.add(assignment2) self.assertEqual(len(self.__assignment_repository), 2) self.assertEqual(self.__assignment_repository.get_all()[1], assignment2)
def testFind(self): self.aCtr.add(deepcopy(self.a)) self.aCtr.add(Assignment(2, "Algebra", "24/01/2019")) x = self.aCtr.findByID(1) self.assertEqual(x, self.a) x = self.aCtr.findByID(5) self.assertEqual(x, -1) self.assertIsInstance(str(self.aCtr), str)
def generate_random_assignment(self): for i in range(0, 10): id = self.generate_rand_ass_id() description = ['Homework with classes', 'Preparation for the written exam',' Project for passing the class','Optional Homework','Individual Exercises', 'Mandatory Homework', 'Final grade project', 'Bonus points project','Erasmus interview project'] deadline = ['2020-10-10','2020-11-16','2020-08-12','2021-12-25','2020-11-19','2021-02-01','2021-01-10','2021-07-23','2021-05-18','2021-03-29'] rand_desc = description[random.randint(0,8)] rand_dead = deadline[random.randint(0,9)] assignment = Assignment(id, rand_desc, rand_dead) self.llist_a.list_of_assignments.add_assingment_to_list(assignment)
def create_assignment(self, description, deadline, assignment_id=None): """ Method for creating an assignment description - The assignment's description (string) deadline - The assignment's deadline (consisting of a date) """ assignment = Assignment(assignment_id, description, deadline) self.__assignment_validator.validate(assignment) self.__assignment_repository.add(assignment) return self.__assignment_repository.get_all()[-1].get_assignment_id()
def update_assignment(self, assignment_id, description, deadline): """ Method for updating an assignment assignment_id - The assignment's ID (integer) description - The assignment's description (string) deadline - The assignment's deadline (consisting of a date) """ assignment = Assignment(assignment_id, description, deadline) self.__assignment_validator.validate(assignment) self.__assignment_repository.update(assignment_id, assignment)
def test_addassignmentrepo(self): assing = Assignment('123', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) try: self.assing_repo.add_assingment_to_list(assing) self.assertTrue('OK') except AssignmentException: self.assertFalse('Not good') self.assertEqual(len(self.assing_repo), 2) assing = Assignment('123', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) assing = Assignment('124', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) assing = Assignment('125', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) assing = Assignment('126', 'Homework due Tomorrow', '2021-12-22') self.assing_repo.add_assingment_to_list(assing) self.assertEqual(len(self.assing_repo), 6)
def uiAddAssig(self): aID = input("Assignment ID: ") if aID.isnumeric(): aID = int(aID) else: raise TypeError("ID must be an int!") aDesc = input("Assignment description: ") aDeadline = input("Assignment deadline: ") assig = Assignment(aID, aDesc, aDeadline) self._assign.add(assig) return True
def add_assignment(self, id, description, deadline): """ we add a given assignment if it is valid :param id: the given ID :param description: the given description :param deadline: the given Deadline """ # if there is no exception raised, it means that the id is unique self._validator.validate(self.list_of_assignments,Assignment(id, description, deadline)) ass = Assignment(id, description, deadline) # if the code gets to this point it means that the assignment is valid so we can do the undo/redo undo_function = FunctionCall(self.list_of_assignments.remove_assignment_from_list, ass) redo_function = FunctionCall(self.list_of_assignments.add_assingment_to_list, ass) operation = OperationCall(undo_function, redo_function) self._undo_service.record(operation) self.list_of_assignments.add_assingment_to_list(ass)
def create_assig(self, id_person, id_event): ''' store an event :param: person - Person :param: event - Event :post: the assignment will be added to the list :return: the new assignment added ''' #create new_assignment new_assig = Assignment(id_person, id_event) #add the assignment into using repository return self.__rep.store_assig(new_assig)
def generate_assignments(self, amount): for value in range(amount): description = '' for _ in range(3): description += Generator.get_random_object(self.__words) + ' ' year = Generator.get_random_number(2018, 2020) month = Generator.get_random_number(1, 12) day = Generator.get_random_number( 1, calendar.monthrange(year, month)[1]) self.__assignment_repository.add( Assignment(None, description[:-1].capitalize(), date(year, month, day)))
def testRmvAsGr(self): self._grCtr.assignment.add(Assignment(1, "ASC", "8/10/2018")) self.asCtr.add(Assignment(2, "FP", "10/10/2018")) self.assertEqual(len(self.asCtr.getAll()), 2) self._grCtr.add(Grade(1, 1, 2.0)) self._grCtr.add(Grade(1, 2, 7.0)) self._grCtr.add(Grade(2, 1, 5.0)) self._grCtr.add(Grade(2, 2, 3.0)) self.undo.undo() self.undo.undo() self._grCtr.add(Grade(2, 1, 8.0)) self._grCtr.add(Grade(2, 2, 9.0)) self.assertEqual(len(self._grCtr.getAll()), 4) self._grCtr.removeAssign(2) self.assertEqual(len(self.asCtr.getAll()), 1) self.assertEqual(len(self._grCtr.getAll()), 2) self.undo.undo() self.assertEqual(len(self.asCtr.getAll()), 2) self.assertEqual(len(self._grCtr.getAll()), 4) self.undo.redo() self.assertEqual(self._grCtr.getAll()[1], Grade(1, 2, 7.0)) self.assertFalse(self._grCtr.removeAssign(2))
def testGiveAssign(self): self.stCtr.add(Student(1, "John", "913")) self.stCtr.add(Student(2, "Mary", "913")) self.stCtr.add(Student(3, "Oliver", "914")) self.stCtr.add(Student(4, "Greg", "913")) self.stCtr.add(Student(5, "Silvia", "914")) self.assertEqual(len(self.stCtr.getAll()), 5) self.asCtr.add(Assignment(1, "ASC", "08/12/2018")) self.asCtr.add(Assignment(2, "FP", "29/11/2018")) self.assertEqual(len(self.asCtr.getAll()), 2) self._grCtr.giveAssigToGroup(2, "913") self.assertEqual(len(self._grCtr.getAll()), 3) self._grCtr.giveAssigToGroup(1, "914") self.assertEqual(len(self._grCtr.getAll()), 5) self.undo.undo() self.undo.undo() self._grCtr.setAssigStud(2, 3) self.assertEqual(len(self._grCtr.getAll()), 1) self.assertEqual(self._grCtr.getAll()[0], Grade(2, 3, 0.0)) self.assertRaises(ValueError, self._grCtr.giveAssigToGroup, 5, "dsadas2") self.assertFalse(self._grCtr.setAssigStud(2, 3))
def load_assignments(self): try: file = open(self.__filename, 'r') line = file.readline().strip() while len(line) > 0: line = line.split(',') self.__assignments.add( Assignment(int(line[0]), line[1], Helper.resolve_date(line[2]))) self.__count += 1 line = file.readline().strip() file.close() except IOError as e: raise e
def __load_from_file(self): try: file = open(self.__file_name, "r") line = file.readline().strip() while line != "": attributes = line.split(";") assignment = Assignment( int(attributes[0]), attributes[1], date(int(attributes[2]), int(attributes[3]), int(attributes[4]))) Assignment_repository.add(self, assignment) line = file.readline().strip() except IOError as ioerror: raise RepositoryError(str(ioerror)) finally: file.close()
def __loadFromFile(self): ''' Loads assignments from file raise CorruptedFIleException if there's an error when reading from the file ''' try: f = open(self.__path, "r") except IOError: #file not exists return line = f.readline().strip() assig = [] while line != "": comp = line.split(",") ass = Assignment(comp[0], comp[1]) assig.append(ass) line = f.readline().strip() f.close() return assig
class TestAssignment(TestCase): def setUp(self): self.__assignment = Assignment(1, "Phone Book", date(2018, 12, 20)) def test_set_assignment_id(self): self.__assignment.set_assignment_id(3) self.assertEqual(self.__assignment.get_assignment_id(), 3) def test_get_assignment_id(self): self.assertEqual(self.__assignment.get_assignment_id(), 1) def test_get_description(self): self.assertEqual(self.__assignment.get_description(), "Phone Book") def test_get_deadline(self): self.assertEqual(self.__assignment.get_deadline(), date(2018, 12, 20))
def addAs(self): idA = self.lineEdit_ID.text().strip() desc = self.lineEdit_desc.text().strip() deadline = self.lineEdit_date.text().strip() if self.wid.windowTitle() == "AddAssignment": cmd = self._ctr.assignment.add else: cmd = self._ctr.update try: if idA.isnumeric(): idA = int(idA) else: raise ValueError("ID must be a natural number!") cmd(Assignment(idA, desc, deadline)) self.lineEdit_ID.setText("") self.lineEdit_desc.setText("") self.lineEdit_date.setText("") self.createDialog( "Assignment with Description: " + desc + " and ID: " + str(idA) + " was successfully added!", "Operation succeded!", QtWidgets.QMessageBox.Information) except Exception as er: self.createDialog(str(er), "Error!", QtWidgets.QMessageBox.Critical)
def testUpdate(self): self.aCtr.add(deepcopy(self.a)) self.aCtr.add(Assignment(2, "Algebra", "24/01/2019")) self.aCtr.update(Assignment(1, "Bra", "14/01/2019")) self.assertEqual(self.aCtr.getAll()[0].description, "Bra") self.assertRaises(TypeError, self.aCtr.update, 4)
def setUp(self): self.a = Assignment(1, "ASC", "08/12/2018") self.aCtr = AssignmnetController(Repository(), AssignmentValidator(), UndoController())
def setUp(self): self.__assignment_repository = AssignmentRepository() self.__assignment = Assignment(None, "Test", date(2018, 12, 17))
def test_update(self): self.__assignment_repository.add(self.__assignment) new_assignment = Assignment(1, "Updated", date(2018, 12, 17)) self.__assignment_repository.update(1, new_assignment) self.assertEqual(self.__assignment_repository.get_all()[0], new_assignment)