Example #1
0
    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())
Example #3
0
    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')
Example #4
0
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"))
Example #5
0
    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')
Example #6
0
    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')
Example #7
0
    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)
Example #8
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'))
Example #9
0
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)
Example #12
0
 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)
Example #15
0
    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)
Example #16
0
 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
Example #17
0
    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)
Example #19
0
 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
Example #25
0
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))
Example #26
0
 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)