def setUp(self):
     self.undo = UndoController()
     self.stCtr = StudentController(Repository(), StudentValidator(),
                                    self.undo)
     self.asCtr = AssignmnetController(Repository(), AssignmentValidator(),
                                       self.undo)
     self.grade = Grade(1, 1, 5.0)
     self._grCtr = GradeController(Repository(), GradeValidator(),
                                   self.stCtr, self.asCtr, self.undo)
示例#2
0
 def __init__(self):
     self._undo = UndoController()
     self._stud = StudentController(Repository(), StudentValidator(),
                                    self._undo)
     self._assign = AssignmnetController(Repository(),
                                         AssignmentValidator(), self._undo)
     self._grade = GradeController(Repository(), GradeValidator(),
                                   self._stud, self._assign, self._undo)
     self._stat = Statistics(self._grade)
示例#3
0
 def setUp(self):
     self._undo = UndoController()
     self._stCtr = StudentController(Repository(), StudentValidator(),
                                     self._undo)
     self._asCtr = AssignmnetController(Repository(), AssignmentValidator(),
                                        self._undo)
     self._grCtr = GradeController(Repository(), GradeValidator(),
                                   self._stCtr, self._asCtr, self._undo)
     self._stat = Statistics(self._grCtr)
     populateAsCtrSTATIC(self._asCtr)
     populateStCtrSTATIC(self._stCtr)
示例#4
0
class UnitTestGrade(unittest.TestCase):
    '''
    '''

    def setUp(self):
        self.g = Grade(1, 1, 0.0)
        self.v = GradeValidator()

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

    def testID(self):
        self.assertTrue(self.v.validate, self.g)
        self.g.assignID = 0
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.assignID = -1
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.assignID = "1"
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.assignID = 1
        self.g.studentID = 0
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.studentID = -1
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.studentID = "1"
        self.assertRaises(ValidatorException, self.v.validate, self.g)

    def testGrade(self):
        self.g.grade = -1
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.grade = 11
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.grade = -0.1
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.grade = 10.1
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.grade = "3"
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.id = 4
        self.g.grade = 3.2
        self.assertTrue(str(self.g))
        self.assertTrue(self.g.id == 4)
        self.assertEqual(self.g, Grade(1, 1, 3.2))
        self.g.id = "2"
        self.assertRaises(ValidatorException, self.v.validate, self.g)
        self.g.id = 2
        self.assertEqual(self.v.validate(self.g), True)

    def testValidator(self):
        x = ValidatorException(["Blah", "Blah2"])
        self.assertEqual(len(x.messages), 2)
        self.assertTrue(str(x))
        self.assertTrue(repr(Grade(1, 2, 0)))
 def setGrade(self, studID, assigID, grade):
     '''
         Sets grade at a given assignment of a given student
         Input: studID - positive integer
                assigID - positive int
                grade - float in [0,10]
         Output: True - if setting succeded
                 False - otherwise
     '''
     newGrade = Grade(assigID, studID, grade)
     GradeValidator().validate(newGrade)
     oldGrade = self.findByID(studID, assigID)
     if type(oldGrade) != Grade:
         raise ValueError("There does not exist such a grade!")
     if oldGrade.grade != 0.0:
         raise ControllerException("This grade was already assigned!")
     self.update(newGrade)
     return True
示例#6
0
    asRepo = BinRepository("data\\" + sets.repoAs, Assignment)
    grRepo = BinRepository("data\\" + sets.repoGr, Grade)
elif sets.repo == "json_file":
    stRepo = JsonRepository("data\\" + sets.repoSt, Student)
    asRepo = JsonRepository("data\\" + sets.repoAs, Assignment)
    grRepo = JsonRepository("data\\" + sets.repoGr, Grade)
elif sets.repo == "mongoDB":
    stRepo = MongoRepository(Student)
    asRepo = MongoRepository(Assignment)
    grRepo = MongoRepository(Grade)
else:
    raise ValueError("Repo must be from memory/text_file/binary_file/json_file/mongoDB")

stCtr = StudentController(stRepo, StudentValidator(), undoCtr)
asCtr = AssignmnetController(asRepo, AssignmentValidator(), undoCtr)
grCtr = GradeController(grRepo, GradeValidator(), stCtr, asCtr, undoCtr)
stat = Statistics(grCtr)
if sets.ui == "cli":
    menu = CliMenu(undoCtr, stCtr, asCtr, grCtr, stat)
    menu.mainMenu()
elif sets.ui == "gui":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    StudentsManagement = QtWidgets.QMainWindow()
    ui = Ui_StudentsManagement(undoCtr, stCtr, asCtr, grCtr, stat)
    ui.setupUi(StudentsManagement)
    StudentsManagement.show()
    sys.exit(app.exec_())

else:
    raise ValueError("UI must be cli/gui!")
示例#7
0
 def setUp(self):
     self.g = Grade(1, 1, 0.0)
     self.v = GradeValidator()