def test_undo(self): studs = Repository([]) grades = Repository([]) assigns = Repository([]) assigns.store(Assignment(123, 'do', datetime.date.today())) u = Undo() studServ = ServiceStudent(studs, grades, u) gradeServ = ServiceGrade(grades, studs, assigns, u) studServ.store('1234', 'John Doe', '1') studServ.store('1235', 'Jane Doe', '2') gradeServ.addAssignmentToGroup('1', '123') u.undo() u.redo() u.undo() u.undo() u.undo() u.redo() u.redo() u.undo() u.redo() u.undo() u.undo() with self.assertRaises(ValueError): u.undo() studServ.store('1236', 'Mike Doe', '1') with self.assertRaises(ValueError): u.redo()
def test_store(self): studs = Repository([]) assigns = Repository([]) grades = Repository([]) studs.store(s1 := Student(1234, 'John Doe', 1)) studs.store(s2 := Student(1235, 'Jane Doe', 2)) assigns.store(a1 := Assignment(123, 'do', datetime.date.today())) assigns.store(a2 := Assignment(124, 'go', datetime.date(2019, 8, 29))) grades.store(g1 := Grade(s1, a1, 1)) grades.store(g2 := Grade(s2, a2, 2, 8)) with self.assertRaises(RepositoryException): studs.store(s1) self.assertEqual(len(studs), 2) self.assertEqual(a1.Description, 'do') self.assertEqual(a1.Deadline, datetime.date.today()) a1.Description = 'did' a1.Deadline = datetime.date(2019, 11, 27) self.assertNotEqual(repr(a1), 0) self.assertEqual(a1 == s1, False) self.assertEqual(a1, Assignment(123, '', '')) self.assertEqual(g1.IdStud, s1.Id) self.assertEqual(g2.IdAssignment, a2.Id) self.assertEqual(g2.Grade, 8) g1.Grade = 5 self.assertEqual(g1.Grade, 5) self.assertNotEqual(repr(g1), 0) g1.Grade = -1 self.assertNotEqual(repr(g1), 0)
def store(self, obj): Repository.store(self, obj) obj = (obj.Id, obj.IdStud, obj.IdAssignment, obj.Grade) sql = '''INSERT INTO grades (id, studId, assignId, grade) VALUES (?, ?, ?, ?)''' current = self._connection.cursor() current.execute(sql, obj) self._connection.commit()
def store(self, obj): Repository.store(self, obj) obj = (obj.Id, obj.Name, obj.Group) sql = '''INSERT INTO students (id, StudName, StudGroup) VALUES (?, ?, ?);''' current = self._conn.cursor() current.execute(sql, obj) self._conn.commit()
def test_servGrade(self): studs = Repository([]) grades = Repository([]) assigns = Repository([]) u = Undo() studs.store(s1 := Student(1234, 'John Doe', 1)) studs.store(s2 := Student(1235, 'Jane Doe', 2)) assigns.store(a1 := Assignment(123, 'do', datetime.date.today())) assigns.store(a2 := Assignment(124, 'go', datetime.date(2019, 8, 29))) assigns.store(Assignment(125, 'wow', datetime.date.today())) servgr = ServiceGrade(grades, studs, assigns, u) with self.assertRaises(StudentException): servgr.addAssignmentToStud('123d', '123') with self.assertRaises(AssignmentException): servgr.addAssignmentToStud('1234', '123d') with self.assertRaises(StudentException): servgr.addAssignmentToStud('2136', '123') with self.assertRaises(AssignmentException): servgr.addAssignmentToStud('1234', '213') servgr.addAssignmentToStud('1234', '123') with self.assertRaises(GradeException): servgr.addAssignmentToStud('1234', '123') with self.assertRaises(StudentException): servgr.addAssignmentToGroup('d', '123') with self.assertRaises(StudentException): servgr.addAssignmentToGroup('3', '123') with self.assertRaises(AssignmentException): servgr.addAssignmentToGroup('1', 'd2') with self.assertRaises(AssignmentException): servgr.addAssignmentToGroup('1', '126') servgr.addAssignmentToGroup('2', '125') servgr.addAssignmentToGroup('1', '123') servgr.gradeStud('1234', '123', '10') with self.assertRaises(StudentException): servgr.gradeStud('12d', '123', '10') with self.assertRaises(AssignmentException): servgr.gradeStud('1234', '12d', '10') with self.assertRaises(GradeException): servgr.gradeStud('1234', '123', 'd') with self.assertRaises(GradeException): servgr.gradeStud('1234', '123', '11') with self.assertRaises(StudentException): servgr.gradeStud('1237', '123', '10') with self.assertRaises(AssignmentException): servgr.gradeStud('1234', '1237', '10') with self.assertRaises(GradeException): servgr.gradeStud('1234', '123', '8') with self.assertRaises(GradeException): servgr.gradeStud('1235', '123', '10') self.assertNotEqual(servgr.getAssigned, 0) servgr.sortStuds() self.assertEqual(type(servgr.getGraded()), str) self.assertEqual(type(servgr.getUnGraded()), str)
def store(self, obj): Repository.store(self, obj) self._saveFile()