示例#1
0
 def modifica_student(self, s_id, newname):
     stud_to_modify = Student(s_id, "search")
     self.__valid_stud.valideaza_student(stud_to_modify)
     x = self.__repoStud.cauta(stud_to_modify)
     modified_stud = Student(x.get_id(), newname)
     self.__valid_stud.valideaza_student(modified_stud)
     self.__repoStud.modifica(x, modified_stud)
示例#2
0
 def __test_valid_student(self):
     valid_stud = ValidatorStud()
     valid_stud.valideaza_student(self.__student)
     self.__stud_id_invalid = Student(-15, "Hagi")
     self.__stud_nume_invalid = Student(10, "")
     self.__stud_invalid = Student(-1, "")
     with self.assertRaises(ValidError):
         valid_stud.valideaza_student(self.__stud_id_invalid)
     with self.assertRaises(ValidError):
         valid_stud.valideaza_student(self.__stud_nume_invalid)
     with self.assertRaises(ValidError):
         valid_stud.valideaza_student(self.__stud_invalid)
     self.__validStudent = valid_stud
示例#3
0
 def __test_repo_student(self):
     clear_file('test.txt')
     self.__repo = FileRepo('test.txt', Student.read_line,
                            Student.write_line)
     self.assertEqual(self.__repo.size(), 0)
     self.__repo.adauga(self.__student)
     self.assertEqual(self.__repo.size(), 1)
     self.assertEqual(self.__repo.get_all(), [self.__student])
     with self.assertRaises(RepoError):
         self.__repo.adauga(self.__student)
     x = self.__repo.cauta(self.__student)
     self.assertEqual(x, self.__student)
     self.__student_inexistent = Student(1, 'roman')
     with self.assertRaises(RepoError):
         x = self.__repo.cauta(self.__student_inexistent)
     self.__stud_to_modify = self.__student
     self.__modified_stud = self.__student
     self.__modified_stud.set_nume('fish')
     self.__repo.modifica(self.__stud_to_modify, self.__modified_stud)
     self.assertEqual(self.__student.get_nume(), 'fish')
     with self.assertRaises(RepoError):
         self.__repo.sterge(self.__student_inexistent)
     self.__repo.sterge(self.__student)
     self.assertEqual(self.__repo.size(), 0)
     self.__repo.adauga(self.__student)
     self.assertEqual(self.__repo.size(), 1)
示例#4
0
 def __test_repo_note(self):
     clear_file('test.txt')
     self.__repo = FileRepo('test.txt', Nota.read_line, Nota.write_line)
     self.assertEqual(self.__repo.size(), 0)
     self.__repo.adauga(self.__nota)
     self.assertEqual(self.__repo.size(), 1)
     self.assertEqual(self.__repo.get_all(), [self.__nota])
     with self.assertRaises(RepoError):
         self.__repo.adauga(self.__nota)
     x = self.__repo.cauta(self.__nota)
     self.assertEqual(x, self.__nota)
     stud = Student(20, '')
     disci = Disciplina(20, '', '')
     self.__nota_inexistenta = Nota(stud, disci, 4)
     with self.assertRaises(RepoError):
         x = self.__repo.cauta(self.__nota_inexistenta)
     self.__nota_to_modify = self.__nota
     self.__modified_nota = self.__nota
     self.__modified_nota.set_nota(5)
     self.__repo.modifica(self.__nota_to_modify, self.__modified_nota)
     self.assertEqual(self.__nota.get_nota(), 5)
     with self.assertRaises(RepoError):
         self.__repo.sterge(self.__nota_inexistenta)
     self.__repo.sterge(self.__nota)
     assert (self.__repo.size() == 0)
示例#5
0
 def __test_creeaza_nota(self):
     self.__student = Student(10, 'Bogdan')
     self.__disciplina = Disciplina(1, 'info', 'neagu')
     nota = Nota(self.__student, self.__disciplina, 7)
     self.assertEqual(nota.get_stud(), self.__student)
     self.assertEqual(nota.get_disci(), self.__disciplina)
     self.assertEqual(nota.get_nota(), 7)
     self.assertEqual(
         str(nota),
         self.__student.get_nume() + ' are nota 7 la disciplina ' +
         self.__disciplina.get_nume())
     nota2 = Nota(self.__student, self.__disciplina, 9)
     self.assertFalse(nota == nota2)
     nota.set_nota(9)
     self.assertEqual(nota.get_nota(), 9)
     self.assertTrue(nota == nota2)
     self.__nota = nota
示例#6
0
 def adauga_nota(self, s_id, d_id, nota):
     stud_aux = Student(s_id, 'search')
     stud = self.__repoStud.cauta(stud_aux)
     disci_aux = Disciplina(d_id, 'search', 'search')
     disci = self.__repoDisci.cauta(disci_aux)
     nota = Nota(stud, disci, nota)
     self.__valid_nota.valideaza_nota(nota)
     self.__repoNote.adauga(nota)
示例#7
0
 def __test_create_student(self):
     stud1 = Student(10, 'Bogdan')
     self.assertEqual(stud1.get_id(), 10)
     self.assertEqual(stud1.get_nume(), 'Bogdan')
     self.assertEqual(str(stud1), '10: Bogdan')
     stud1.set_nume('Marius')
     self.assertEqual(stud1.get_nume(), 'Marius')
     stud2 = Student(10, 'Alex')
     self.assertTrue(stud1 == stud2)
     self.__student = stud1
示例#8
0
 def adauga_stud_random(self, nr, min_id):
     last_id = min_id
     while nr:
         id = last_id + 1
         last_id = id
         letters = string.ascii_lowercase
         len_name = randint(5, 16)
         nume = ''
         while len_name > 0:
             litera = choice(letters)
             nume += litera
             len_name = len_name - 1
         stud = Student(id, nume)
         self.__repoStud.adauga(stud)
         nr = nr - 1
示例#9
0
 def get_stud_medie(self):
     note = self.__repoNote.get_all()
     situatie = {}
     for nota in note:
         if nota.get_stud().get_id() not in situatie:
             situatie[nota.get_stud().get_id()] = []
         situatie[nota.get_stud().get_id()].append(nota.get_nota())
     rez = []
     for item in situatie.items():
         aux_stud = Student(item[0], '')
         x = self.__repoStud.cauta(aux_stud)
         stud = StudAvgDTO(x.get_nume(), sum(item[1]) / len(item[1]))
         rez.append(stud)
     rez.sort(key=lambda x: x.get_medie(), reverse=True)
     nr = len(rez) * 20 / 100
     nr = ceil(nr)
     return rez[:nr]
示例#10
0
 def get_stud_ord(self, d_id):
     note = self.__repoNote.get_all()
     situatie = {}
     for nota in note:
         if nota.get_disci().get_id() == d_id:
             if nota.get_stud().get_id() not in situatie:
                 situatie[nota.get_stud().get_id()] = []
             situatie[nota.get_stud().get_id()].append(nota.get_nota())
     rez = []
     for item in situatie.items():
         aux_stud = Student(item[0], '')
         x = self.__repoStud.cauta(aux_stud)
         item[1].sort()
         stud = StudGradesDTO(x.get_nume(), item[1])
         rez.append(stud)
     rez.sort(key=lambda x: x.get_nume(), reverse=False)
     return rez[:]
示例#11
0
class NoteTests(unittest.TestCase):
    def setUp(self):
        unittest.TestCase.setUp(self)

    def tearDown(self):
        unittest.TestCase.tearDown(self)

    def __test_creeaza_nota(self):
        self.__student = Student(10, 'Bogdan')
        self.__disciplina = Disciplina(1, 'info', 'neagu')
        nota = Nota(self.__student, self.__disciplina, 7)
        self.assertEqual(nota.get_stud(), self.__student)
        self.assertEqual(nota.get_disci(), self.__disciplina)
        self.assertEqual(nota.get_nota(), 7)
        self.assertEqual(
            str(nota),
            self.__student.get_nume() + ' are nota 7 la disciplina ' +
            self.__disciplina.get_nume())
        nota2 = Nota(self.__student, self.__disciplina, 9)
        self.assertFalse(nota == nota2)
        nota.set_nota(9)
        self.assertEqual(nota.get_nota(), 9)
        self.assertTrue(nota == nota2)
        self.__nota = nota

    def __test_valideaza_nota(self):
        valid_nota = ValidatorNota()
        valid_nota.valideaza_nota(self.__nota)
        self.__nota_invalida = Nota(self.__student, self.__disciplina, -5)
        with self.assertRaises(ValidError):
            valid_nota.valideaza_nota(self.__nota_invalida)

    def __test_repo_note(self):
        clear_file('test.txt')
        self.__repo = FileRepo('test.txt', Nota.read_line, Nota.write_line)
        self.assertEqual(self.__repo.size(), 0)
        self.__repo.adauga(self.__nota)
        self.assertEqual(self.__repo.size(), 1)
        self.assertEqual(self.__repo.get_all(), [self.__nota])
        with self.assertRaises(RepoError):
            self.__repo.adauga(self.__nota)
        x = self.__repo.cauta(self.__nota)
        self.assertEqual(x, self.__nota)
        stud = Student(20, '')
        disci = Disciplina(20, '', '')
        self.__nota_inexistenta = Nota(stud, disci, 4)
        with self.assertRaises(RepoError):
            x = self.__repo.cauta(self.__nota_inexistenta)
        self.__nota_to_modify = self.__nota
        self.__modified_nota = self.__nota
        self.__modified_nota.set_nota(5)
        self.__repo.modifica(self.__nota_to_modify, self.__modified_nota)
        self.assertEqual(self.__nota.get_nota(), 5)
        with self.assertRaises(RepoError):
            self.__repo.sterge(self.__nota_inexistenta)
        self.__repo.sterge(self.__nota)
        assert (self.__repo.size() == 0)

    def run_note_tests(self):
        self.__test_creeaza_nota()
        self.__test_valideaza_nota()
        self.__test_repo_note()
示例#12
0
 def sterge_student(self, s_id):
     stud_to_delete = Student(s_id, 'delete')
     self.__valid_stud.valideaza_student(stud_to_delete)
     self.__repoStud.sterge(stud_to_delete)
示例#13
0
 def cauta_student(self, s_id):
     stud_aux = Student(s_id, 'search')
     self.__valid_stud.valideaza_student(stud_aux)
     return self.__repoStud.cauta(stud_aux)
示例#14
0
 def adauga_student(self, s_id, nume):
     student = Student(s_id, nume)
     self.__valid_stud.valideaza_student(student)
     self.__repoStud.adauga(student)