Esempio n. 1
0
 def setUp(self):
     self._discipline1 = Discipline(50, "Math")
     self._discipline2 = Discipline(80, "Drawing")
     self._discipline3 = Discipline(90, "Flying")
     self._bad_id_discipline = Discipline(-20, "Algebra")
     self._bad_name_discipline = Discipline(20, "")
     self._validDisc = ValidatorDiscipline()
     self._repo = Repo()
     self._undoService = ServiceUndo()
     self._servDiscipline = ServiceDisciplines(self._repo, self._validDisc,
                                               self._undoService)
Esempio n. 2
0
 def setUp(self):
     self._student1 = Student(20, "A")
     self._student2 = Student(21, "B")
     self._student3 = Student(22, "C")
     self._bad_id_student = Student(-20, "B")
     self._bad_name_student = Student(20, "")
     self._validStud = ValidatorStudent()
     self._repo = Repo()
     self._undoService = ServiceUndo()
     self._servStudent = ServiceStudents(self._repo, self._validStud,
                                         self._undoService)
 def _writeToFile(self):
     f = open(self._filename, "w")
     listGrades = Repo.get_all(self)
     for element in listGrades:
         f.write(
             str(element.get_id_stud()) + ", " +
             str(element.get_id_disc()) + ", " + str(element.get_grade()))
     f.close()
Esempio n. 4
0
 def setUp(self):
     self._grade = Grade(20, 30, 10)
     self._bad_id_student_grade = Grade(-20, 20, 10)
     self._bad_id_disc_grade = Grade(20, -20, 10)
     self._bad_grade = Grade(20, 20, -5)
     self._validGrade = ValidatorGrade()
     self._validStud = ValidatorStudent()
     self._validDisc = ValidatorDiscipline()
     self._undoService = ServiceUndo()
     self._repoStudents = Repo()
     self._repoGrades = Repo()
     self._repoDisciplines = Repo()
     self._serviceStudent = ServiceStudents(self._repoStudents,
                                            self._validStud,
                                            self._undoService)
     self._serviceDisc = ServiceDisciplines(self._repoDisciplines,
                                            self._validDisc,
                                            self._undoService)
     self._gradeService = ServiceGrades(self._repoStudents,
                                        self._repoDisciplines,
                                        self._repoGrades, self._validGrade,
                                        self._undoService)
Esempio n. 5
0
 def remove_repo(self, object):
     Repo.remove_repo(self, object)
     self._writeToBinaryFile()
Esempio n. 6
0
 def add(self, object):
     Repo.add(self, object)
     self._writeToBinaryFile()
'''
from validare.validatoare import ValidatorStudent, ValidatorDiscipline, ValidatorGrade
from infrastructure.repos import Repo
from business.services import ServiceStudents, ServiceDisciplines, ServiceGrades
from presentation.ui import Console
from business.services import ServiceUndo
from AppSettings import *
from infrastructure.RepoTextFile import StudentTextFileRepo, DisciplineTextFileRepo, GradesTextFileRepo
from infrastructure.RepoBinaryFile import BinaryFileRepo
from infrastructure.JSONFile import JSONRepo
validatorStudent = ValidatorStudent()
validatorDiscipline = ValidatorDiscipline()
validatorGrade = ValidatorGrade()
appsettings = AppSettings()
if appsettings.Data["repository"] == "inmemory":
    repoStudents = Repo()
    repoDisciplines = Repo()
    repoGrades = Repo()
elif appsettings.Data["repository"] == "textfiles":
    repoStudents = StudentTextFileRepo(appsettings.Data["student"])
    repoDisciplines = DisciplineTextFileRepo(appsettings.Data["discipline"])
    repoGrades = GradesTextFileRepo(appsettings.Data["grade"])
elif appsettings.Data["repository"] == "binaryfile":
    repoStudents = BinaryFileRepo(appsettings.Data["student"])
    repoDisciplines = BinaryFileRepo(appsettings.Data["discipline"])
    repoGrades = BinaryFileRepo(appsettings.Data["grade"])
elif appsettings.Data["repository"] == "json":
    repoStudents = JSONRepo(appsettings.Data["student"])
    repoDisciplines = JSONRepo(appsettings.Data["discipline"])
    repoGrades = JSONRepo(appsettings.Data["grade"])
serviceUndo = ServiceUndo()
Esempio n. 8
0
 def remove_repo(self, element):
     Repo.remove_repo(self, element)
     self._writeToJSONFile()
Esempio n. 9
0
 def add(self, element):
     Repo.add(self, element)
     self._writeToJSONFile()
 def _writeToFile(self):
     f = open(self._filename, "w")
     listaDiscipline = Repo.get_all(self)
     for element in listaDiscipline:
         f.write(
             str(element.get_id_disc()) + ", " + element.get_disc_name())
 def _writeToFile(self):
     f = open(self._filename, "w")
     listaStudenti = Repo.get_all(self)
     for element in listaStudenti:
         f.write(str(element.get_s_id()) + "," + element.get_name() + "\n")
     f.close()
Esempio n. 12
0
class TesteGrade(unittest.TestCase):
    def setUp(self):
        self._grade = Grade(20, 30, 10)
        self._bad_id_student_grade = Grade(-20, 20, 10)
        self._bad_id_disc_grade = Grade(20, -20, 10)
        self._bad_grade = Grade(20, 20, -5)
        self._validGrade = ValidatorGrade()
        self._validStud = ValidatorStudent()
        self._validDisc = ValidatorDiscipline()
        self._undoService = ServiceUndo()
        self._repoStudents = Repo()
        self._repoGrades = Repo()
        self._repoDisciplines = Repo()
        self._serviceStudent = ServiceStudents(self._repoStudents,
                                               self._validStud,
                                               self._undoService)
        self._serviceDisc = ServiceDisciplines(self._repoDisciplines,
                                               self._validDisc,
                                               self._undoService)
        self._gradeService = ServiceGrades(self._repoStudents,
                                           self._repoDisciplines,
                                           self._repoGrades, self._validGrade,
                                           self._undoService)

    def test_create_grade(self):
        self.assertEqual(self._grade.get_id_stud(), 20)
        self.assertEqual(self._grade.get_id_disc(), 30)
        self.assertEqual(self._grade.get_grade(), 10)
        self._grade.set_id_stud(1)
        self._grade.set_id_disc(1)
        self._grade.set_grade(1)
        self.assertEqual(self._grade.get_id_stud(), 1)
        self.assertEqual(self._grade.get_id_disc(), 1)
        self.assertEqual(self._grade.get_grade(), 1)
        self._otherGrade_same_id = Grade(1, 1, 5)
        self.assertEqual(
            self._otherGrade_same_id.get_id_disc()
            and self._otherGrade_same_id.get_id_stud(),
            self._grade.get_id_disc() and self._grade.get_id_stud())

    def test_creat_init_grades(self):
        self._gradeService.create_init_grades()
        self.assertEqual(self._repoGrades.size(), 10)

    def test_validator_grade(self):
        self._validGrade.validate_grade(self._grade)
        try:
            self._validGrade.validate_grade(self._bad_id_student_grade)
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "id student invalid!\n")
        try:
            self._validGrade.validate_grade(self._bad_id_disc_grade)
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "id discipline invalid!\n")
        try:
            self._validGrade.validate_grade(self._bad_grade)
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "grade invalid!\n")

    def test_add_remove_repo(self):
        self.assertEqual(self._repoGrades.size(), 0)
        self._repoGrades.add_grade(self._grade)
        self.assertEqual(self._repoGrades.size(), 1)
        self._repoGrades.remove_repo(self._grade)
        self.assertEqual(self._repoGrades.size(), 0)
        self._grade2 = Grade(5, 8, 9)
        self._repoGrades.add_grade(self._grade)

    def test_add_removebyID_average_SERVICE(self):
        #self._gradeService.give_grade(4, 5, 6)
        #grades = self._gradeService.get_grades()
        #self.assertEqual(len(grades) ,1)
        self.assertEqual(self._gradeService.get_grades_no(), 0)
        self._gradeService.give_grade(9, 3, 5)
        self._gradeService.give_grade(9, 4, 8)
        self.assertEqual(self._gradeService.get_grades_no(), 2)
        self._gradeService.remove_grade_by_idStud_and_grade(9, 3, 5)
        self.assertEqual(self._gradeService.get_grades_no(), 1)
        self._gradeService.remove_grade_by_disc_id(4)
        self.assertEqual(self._gradeService.get_grades_no(), 0)
        self._gradeService.give_grade(1, 8, 10)
        self._gradeService.remove_grade_by_student_id(1)
        self.assertEqual(self._gradeService.get_grades_no(), 0)
        self._gradeService.give_grade(1, 1, 1)
        grades = self._gradeService.get_grades()
        self.assertEqual(len(grades), 1)
        self._serviceStudent.add_student(1, "Jane")
        self._serviceStudent.add_student(2, "Marc")
        self._gradeService.give_grade(2, 2, 1)
        self._gradeService.give_grade(1, 3, 2)
        failing_students = self._gradeService.grades_average()
        self.assertEqual(len(failing_students), 3)
        average_disc = self._gradeService.average_student_discipline(2)
        self.assertEqual(average_disc, 1.0)
        best_studs = self._gradeService.best_students()
        self.assertEqual(len(best_studs), 2)
        self.assertEqual(best_studs[0].get_student(), Student(1, "Jane"))
        self.assertEqual(best_studs[0].get_stud_average(), 1.5)
        self._repoDisciplines.add(Discipline(2, "Ala"))
        self._repoDisciplines.add(Discipline(3, "Kaka"))
        grade = self._gradeService.find_by_id(2)
        self.assertEqual(grade.get_id_disc(), 2)
        best_disc = self._gradeService.best_disciplines()
        self.assertEqual(len(best_disc), 3)
        self.assertEqual(best_disc[0].get_discipline(), None)
        self.assertEqual(best_disc[1].get_disc_average(), 1.0)
Esempio n. 13
0
class TesteDiscipline(unittest.TestCase):
    def setUp(self):
        self._discipline1 = Discipline(50, "Math")
        self._discipline2 = Discipline(80, "Drawing")
        self._discipline3 = Discipline(90, "Flying")
        self._bad_id_discipline = Discipline(-20, "Algebra")
        self._bad_name_discipline = Discipline(20, "")
        self._validDisc = ValidatorDiscipline()
        self._repo = Repo()
        self._undoService = ServiceUndo()
        self._servDiscipline = ServiceDisciplines(self._repo, self._validDisc,
                                                  self._undoService)

    def test_create_discipline(self):
        self.assertEqual(self._discipline1.get_id_disc(), 50)
        self.assertEqual(self._discipline1.get_disc_name(), "Math")
        self._discipline1.set_disc_name("Trigo")
        self._discipline3.set_id_disc(49)
        self.assertEqual(self._discipline1.get_disc_name(), "Trigo")
        self.assertEqual(self._discipline3.get_id_disc(), 49)
        self._other_disc_same_id = Discipline(50, "Sport")
        self.assertEqual(self._other_disc_same_id.get_id_disc(), 50)
        self.assertEqual(self._other_disc_same_id.get_disc_name(), "Sport")
        self.assertEqual(self._discipline1.get_id_disc(),
                         self._other_disc_same_id.get_id_disc())

    def test_validator_discipline(self):
        self._validDisc.validate_disc(self._discipline1)
        try:
            self._validDisc.validate_disc(self._bad_id_discipline)
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "id invalid!\n")
        try:
            self._validDisc.validate_disc(self._bad_name_discipline)
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "name invalid!\n")

    def test_get_all_discs(self):
        self._servDiscipline.add_disc(1, "Fifi")
        self._servDiscipline.add_disc(2, "Gigi")
        disciplines = self._servDiscipline.get_disc()
        self.assertEqual(len(disciplines), 2)

    def test_add_searchById_searchByName_remove_update_repo(self):
        self.assertEqual(self._repo.size(), 0)
        self._repo.add(self._discipline1)
        self._repo.add(self._discipline2)
        self.assertEqual(self._repo.size(), 2)
        self._repo.remove_repo(self._discipline2)
        self.assertEqual(self._repo.size(), 1)
        self._other_disc_same_id = Discipline(50, "Biology")
        self.assertEqual(self._other_disc_same_id.get_disc_name(), "Biology")
        self.assertEqual(self._other_disc_same_id.get_id_disc(), 50)
        key_disc = Discipline(self._discipline1.get_id_disc(), None)
        disc_found = self._repo.search(key_disc)
        self.assertEqual(disc_found.get_disc_name(),
                         self._discipline1.get_disc_name())
        try:
            self._repo.add(self._other_disc_same_id)
            assert (False)
        except RepoError as re:
            assert (str(re) == "id existent!\n")
        self._other_discipline = Discipline(100, "Mapping")
        try:
            self._repo.search(self._other_discipline)
            assert (False)
        except RepoError as re:
            assert (str(re) == "id inexistent!\n")

    def test_add_searchById_searchByName_remove_update_Service(self):
        self.assertEqual(self._servDiscipline.get_disc_no(), 0)
        self._servDiscipline.add_disc(30, "Bio")
        self._servDiscipline.add_disc(31, "Hiking")
        self.assertEqual(self._servDiscipline.get_disc_no(), 2)
        self._servDiscipline.remove_disc(31)
        self.assertEqual(self._servDiscipline.get_disc_no(), 1)
        disc_found = self._servDiscipline.get_disc_by_id(30)
        self.assertEqual(disc_found.get_disc_name(), "Bio")
        try:
            self._servDiscipline.add_disc(-23, "Chemistry")
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "id invalid!\n")
        try:
            self._servDiscipline.add_disc(3, "")
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "name invalid!\n")
        try:
            self._servDiscipline.add_disc(30, "Guitar")
            assert (False)
        except RepoError as re:
            assert (str(re) == "id existent!\n")
        try:
            self._servDiscipline.get_disc_by_id(98)
            assert (False)
        except RepoError as re:
            assert (str(re) == "id inexistent!\n")
        new = Discipline(30, "Piano")
        self._servDiscipline.update_discipline(new)
        self.assertEqual(new.get_disc_name(), "Piano")
        self._servDiscipline.add_disc(55, "Violin")
        self._servDiscipline.add_disc(56, "Games")
        self._servDiscipline.add_disc(57, "Coding")
        self._servDiscipline.add_disc(58, "Nustiu")
        disciplines = self._servDiscipline.get_discipline_by_name("i")
        self.assertEqual(len(disciplines), 4)

    def test_init_discs(self):
        self._servDiscipline.create_init_discs()
        self.assertEqual(self._repo.size(), 10)
Esempio n. 14
0
class TesteStudent(unittest.TestCase):
    def setUp(self):
        self._student1 = Student(20, "A")
        self._student2 = Student(21, "B")
        self._student3 = Student(22, "C")
        self._bad_id_student = Student(-20, "B")
        self._bad_name_student = Student(20, "")
        self._validStud = ValidatorStudent()
        self._repo = Repo()
        self._undoService = ServiceUndo()
        self._servStudent = ServiceStudents(self._repo, self._validStud,
                                            self._undoService)

    def test_create_student(self):
        self.assertEqual(self._student1.get_name(), "A")
        self.assertEqual(self._student1.get_s_id(), 20)
        self._student3.set_s_id(15)
        self.assertEqual(self._student3.get_s_id(), 15)
        self._student1.set_name("Karl")
        self.assertEqual(self._student1.get_name(), "Karl")
        self._other_student_same_id = Student(20, "Bob")
        self.assertEqual(self._other_student_same_id.get_s_id(),
                         self._student1.get_s_id())

    def testSortingGnome(self):
        listastuds = []
        listastuds.append(self._student2)
        listastuds.append(self._student3)
        listastuds.append(self._student1)
        gnomeSort(listastuds)
        self.assertEqual(listastuds[0].get_s_id(), self._student1.get_s_id())
        self.assertEqual(listastuds[1].get_s_id(), self._student2.get_s_id())

    def testFiltering(self):
        listastuds = []
        listastuds.append(self._student2)
        listastuds.append(self._student3)
        listastuds.append(self._student1)
        res = filterList(listastuds)
        self.assertEqual(len(res), 1)

    def test_get_all(self):
        self._servStudent.add_student(1, "George")
        self._servStudent.add_student(2, "Marcu")
        students = self._servStudent.get_students()
        self.assertEqual(students[0].get_name(), "George")
        self.assertEqual(students[1].get_name(), "Marcu")
        self.assertEqual(len(students), 2)

    def test_validator_student(self):
        self._validStud.validate_student(self._student1)
        try:
            self._validStud.validate_student(self._bad_id_student)
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "id invalid!\n")
        try:
            self._validStud.validate_student(self._bad_name_student)
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "name invalid!\n")

    def test_add_search_remove_repo(self):
        self.assertEqual(self._repo.size(), 0)
        self._repo.add(self._student1)
        self._repo.add(self._student2)
        self.assertEqual(self._repo.size(), 2)
        self._repo.remove_repo(self._student2)
        self.assertEqual(self._repo.size(), 1)
        #In repo a ramas doar student1! Pay attention!
        self._other_student_same_id = Student(20, "Bob")
        key_student = Student(self._student1.get_s_id(), None)
        student_found = self._repo.search(key_student)
        self.assertEqual(student_found.get_name(), self._student1.get_name())
        try:
            self._repo.add(self._other_student_same_id)
            assert (False)
        except RepoError as re:
            assert (str(re) == "id existent!\n")
        self._other_student = Student(100, "Mane")
        try:
            self._repo.search(self._other_student)
            assert (False)
        except RepoError as re:
            assert (str(re) == "id inexistent!\n")

    def test_add_searchById_searchByName_remove_update_Service(self):
        self.assertEqual(self._servStudent.get_no_students(), 0)
        self._servStudent.add_student(25, "Sparrow")
        self._servStudent.add_student(26, "Spar")
        self.assertEqual(self._servStudent.get_no_students(), 2)
        self._servStudent.remove_student(26)
        self.assertEqual(self._servStudent.get_no_students(), 1)
        student_found = self._servStudent.get_student_by_id(25)
        self.assertEqual(student_found.get_name(), "Sparrow")
        try:
            self._servStudent.add_student(-23, "Hans")
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "id invalid!\n")
        try:
            self._servStudent.add_student(20, "")
            assert (False)
        except ValidError as ve:
            assert (str(ve) == "name invalid!\n")
        try:
            self._servStudent.add_student(25, "Jack")
            assert (False)
        except RepoError as re:
            assert (str(re) == "id existent!\n")
        try:
            self._servStudent.get_student_by_id(44)
            assert (False)
        except RepoError as re:
            assert (str(re) == "id inexistent!\n")
        new = Student(25, "Danielo")
        self._servStudent.update_student(new)
        self.assertEqual(new.get_name(), "Danielo")
        self._servStudent.add_student(55, "Ken")
        self._servStudent.add_student(56, "Ben")
        self._servStudent.add_student(57, "Men")
        self._servStudent.add_student(58, "Fen")
        students = self._servStudent.get_students_by_name("en")
        self.assertEqual(len(students), 4)

    def test_create_init_studs(self):
        self._servStudent.create_init_studs()
        self.assertEqual(self._repo.size(), 10)