def setUp(self): if 'TEST_PROVIDER' in os.environ: self.good_provider = os.environ['TEST_PROVIDER'] else: # This is the default server thread started by django test, # but it only works for this app. self.good_provider = 'http://*****:*****@example.com', 'Jeff T', [['MG4', '1st period math', TeacherClass()]]), ('*****@*****.**', 'Jeff J', [['MG4', '5th period math', TeacherClass()]])] self.email1 = self.teacher_data[0][0] self.name1 = self.teacher_data[0][1] self.u1_password = '******' self.u1 = User.objects.create_user(username='******', email='*****@*****.**', password=self.u1_password) user = authenticate(username=self.u1.username, password=self.u1_password) assert user self.teachers = [] for teacher_email, teacher_name, teacher_classes in self.teacher_data: t = Teacher(email=teacher_email, name=teacher_name, user=self.u1) t.full_clean() t.save() self.teachers.append(t) for i in range(len(teacher_classes)): course_id, class_name, _ = teacher_classes[i] c = TeacherClass(name=class_name, course_id=course_id, teacher=t, repo_provider=self.good_provider) c.full_clean() c.save() teacher_classes[i][2] = c # create a calendar entry for the 2nd teacher teacher_2 = self.teacher_data[1] teacher_2_class = teacher_2[2][0][2] e1 = Entry(teacher=self.teachers[1], teacher_class=teacher_2_class, date=datetime.date.today(), objective='MG4-FACTMULT') e1.full_clean() e1.save() self.good_course = 'MG4' self.bad_course = 'xxx' + self.good_course + 'xxx'
def test_duplicate_class_objective(self): tc = TeacherClass(name='1st period math (TDCO)', course_id=self.good_course, teacher=self.teachers[0], repo_provider=self.good_provider) tc.full_clean() tc.save() same_class = tc same_day = datetime.date.today() same_objective = 'MG4-FACTMULT' e1 = Entry(teacher=self.teachers[0], teacher_class=same_class, date=same_day, objective=same_objective) e1.full_clean() e1.save() e2 = Entry(teacher=self.teachers[0], teacher_class=same_class, date=same_day, objective=same_objective) self.assertRaises(ValidationError, lambda: e2.full_clean())