def test_remove_student(self):
     students = Repo()
     student1 = Student(1, "ana", 911)
     student2 = Student(2, "alina", 912)
     students.add(student1)
     students.add(student2)
     assert (students.size() == 2)
     students.remove(student1)
     assert (students.size() == 1)
 def test_create_student(self):
     s_id = 3
     name = "ana"
     group = 95
     student = Student(s_id, name, group)
     assert (student.get_id() == 3)
     assert (student.get_student_name() == "ana")
     assert (student.get_student_group() == 95)
     student.set_student_name("blana")
     assert (student.get_student_name() == "blana")
     dif_student_same_id = Student(3, "iarna", 57)
     assert (student == dif_student_same_id)
 def test_update_student(self):
     s_id = 3
     name = "ana"
     group = 95
     student = Student(s_id, name, group)
     student.set_student_name("lola")
     assert (student.get_student_name() == "lola")
     student.set_student_group(914)
     assert (student.get_student_group() == 914)
예제 #4
0
 def add_student(self, student_id, student_name, student_group):
     """
     function that adds a student to the repository
     :param student_id: int
     :param student_name: string
     :param student_group: int
     :return:
     """
     student = Student(student_id, student_name, student_group)
     self.__repo_student.add(student)
예제 #5
0
 def get_students_for_assignment(self, assignment_id):
     grades = Repo()
     grades = self.__repo_grade.search_for_assignments(assignment_id, grades).get_all()
     students = Repo()
     grades = sorted(grades, key=lambda x: x.get_grade(), reverse=True)
     for grade in grades:
         student_id = grade.get_student_id()
         student = Student(student_id, None, None)
         student = self.__repo_student.search(student)
         students.add(student)
     return students.get_all()
예제 #6
0
    def remove_student(self, id_student):
        """
        function that search for the id of a student in repository and remove it
        :param id_student: int
        :return: -
        """
        student = Student(id_student, None, None)
        self.__repo_student.remove(student)
        grades = Repo()
        grades = self.__repo_grade.search_for_student(id_student, grades).get_all()

        for grade in grades:
            self.__repo_grade.remove(grade)
예제 #7
0
    def late_students(self):
        today = datetime.today().strftime('%Y.%m.%d')
        grades = self.__repo_grade.get_all()
        students = Repo()
        for grade in grades:
            assign = Assignment(grade.get_assignment_id(), None, None)
            assign = self.__repo_assignment.search(assign)
            date = assign.get_assignment_deadline()
            if date < today and grade.get_grade() == -1:
                student = Student(grade.get_student_id(), None, None)
                if student not in students:
                    student = self.__repo_student.search(student)
                    students.add(student)

        return students.get_all()
def initialize_students(Repo_Student):
    List = [
        "Ana", "Maria", "Gheorghe", "Alice", "Jackson", "Moris", "Diana",
        "Angela", "Michael", "Alec"
    ]

    for i in range(12):
        student_id = randint(1, 100)
        student_name = List[randint(0, 9)]
        student_group = randint(1, 100)

        student = Student(student_id, student_name, student_group)
        if Repo_Student.find(student) is False:
            Repo_Student.add(student)

    return Repo_Student
예제 #9
0
 def update_student(self, student_id, student_name, student_group):
     """
     function that update the name and the group of a student
     :param student_id: integer
     :param student_name: string
     :param student_group: integer
     :return: -
     """
    # self.__repo_student.update(student)
     student = Student(student_id, None, None)
     student = self.__repo_student.search(student)
     self.__repo_student.remove(student)
     if student_name is not None:
         student.set_student_name(student_name)
     if student_group is not None:
         student.set_student_group(student_group)
     self.__repo_student.add(student)
예제 #10
0
 def test_repo_student_add_search(self):
     repo = Repo()
     assert (repo.size() == 0)
     student = Student(3, "ana", 95)
     dif_student_same_id = Student(3, "iarna", 57)
     repo.add(student)
     assert (repo.size() == 1)
     keyStudent = Student(student.get_id(), None, None)
     foundStudent = repo.search(keyStudent)
     assert (foundStudent.get_student_name() == student.get_student_name())
     try:
         repo.add(dif_student_same_id)
         assert (False)
     except RepoError as re:
         assert (str(re) == "Element already exist!")
     inexisting_student = Student(24, "kobe", 50)
     try:
         repo.search(inexisting_student)
         assert (False)
     except RepoError as re:
         assert (str(re) == "Inexisting element")
     students = repo.get_all()
     assert (students == [student])