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)
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)
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()
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)
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])
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
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)