def test_not_assigned_course(self): inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() inst2 = models.User() inst2.email = "*****@*****.**" inst2.type = "instructor" inst2.save() course = models.Course() course.num_labs = 2 course.current_num_TA = 0 course.num_lectures = 1 course.course_id = "301" course.course_department = "COMPSCI" course.save() inscourse = models.InstructorCourse() inscourse.instructor = inst1 inscourse.course = course inscourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() response = Commands.assign_instructor_to_lec(inst2.email, course.course_id, lec.lecture_section, course.course_department) self.assertEqual(response, "Instructor not assigned to this course!")
def test_super_post_lab(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.type = "supervisor" sup1.save() course = models.Course() course.num_labs = 2 course.current_num_TA = 1 course.num_lectures = 1 course.instructor = "DEFAULT" course.course_id = "301" course.course_department = "COMPSCI" course.save() tacourse = models.TACourse() tacourse.TA = ta1 tacourse.course = course tacourse.save() lec = models.Lab() lec.course = course lec.lab_section = "801" lec.save() response = Commands.assign_ta_to_lablec(sup1.email, ta1.email, course.course_id, lec.lab_section, course.course_department) self.assertEqual(response, "TA Assigned to Lab!")
def test_each_user(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.password = "******" ad1.type = "administrator" ad1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.password = "******" sup1.type = "supervisor" sup1.save() inst1 = models.User() inst1.email = "*****@*****.**" inst1.password = "******" inst1.type = "instructor" inst1.save() ta1 = models.User() ta1.email = "*****@*****.**" ta1.password = "******" ta1.type = "ta" ta1.save() lists = Commands.access_info() users = lists[0] self.assertTrue(ad1 in users) self.assertTrue(sup1 in users) self.assertTrue(inst1 in users) self.assertTrue(ta1 in users)
def test_assign_improper_sup(self): sup1 = models.User() sup1.email = "*****@*****.**" sup1.type = "supervisor" sup1.save() inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() course = models.Course() course.num_labs = 2 course.current_num_TA = 0 course.num_lectures = 1 course.course_id = "301" course.course_department = "COMPSCI" course.save() inscourse = models.InstructorCourse() inscourse.instructor = inst1 inscourse.course = course inscourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() response = Commands.assign_instructor_to_lec(sup1.email, course.course_id, lec.lecture_section, course.course_department) self.assertEqual(response, "no such instructor")
def setUp(self): admin = models.User() admin.email = "*****@*****.**" admin.type = "administrator" admin.save() supervisor = models.User() supervisor.email = "*****@*****.**" supervisor.type = "supervisor" supervisor.save() instructor = models.User() instructor.email = "*****@*****.**" instructor.password = "******" instructor.name = "DEFAULT" instructor.phone = "000.000.0000" instructor.type = "instructor" instructor.isLoggedOn = False instructor.save() ta = models.User() ta.email = "*****@*****.**" ta.password = "******" ta.name = "DEFAULT" ta.phone = "000.000.0000" ta.type = "ta" ta.isLoggedOn = False ta.save()
def test_assign_ta_too_many(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() ta2 = models.User() ta2.email = "*****@*****.**" ta2.type = "ta" ta2.save() ta3 = models.User() ta3.email = "*****@*****.**" ta3.type = "ta" ta3.save() course = models.Course() course.num_labs = 2 course.current_num_TA = 0 course.num_lectures = 1 course.instructor = "DEFAULT" course.course_id = "301" course.course_department = "COMPSCI" course.save() proper = Commands.assign_ta_to_course(ta1.email, course.course_id, course.course_department) self.assertEqual(proper, "TA Assigned!") proper = Commands.assign_ta_to_course(ta2.email, course.course_id, course.course_department) self.assertEqual(proper, "TA Assigned!") proper = Commands.assign_ta_to_course(ta3.email, course.course_id, course.course_department) self.assertEqual(proper, "Too Many TA's Assigned")
def test_each_user(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.password = "******" ad1.type = "administrator" ad1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.password = "******" sup1.type = "supervisor" sup1.save() inst1 = models.User() inst1.email = "*****@*****.**" inst1.password = "******" inst1.type = "instructor" inst1.save() ta1 = models.User() ta1.email = "*****@*****.**" ta1.password = "******" ta1.type = "ta" ta1.save() users = Commands.read_public() self.assertEquals(users[0], ad1) self.assertEquals(users[1], sup1) self.assertEquals(users[2], inst1) self.assertEquals(users[3], ta1)
def test_no_such_lab_or_lec_sup(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.type = "supervisor" sup1.save() course = models.Course() course.num_labs = 0 course.current_num_TA = 0 course.num_lectures = 1 course.instructor = "DEFAULT" course.course_id = "301" course.course_department = "COMPSCI" course.save() tacourse = models.TACourse() tacourse.TA = ta1 tacourse.course = course tacourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() response = Commands.assign_ta_to_lablec(sup1.email, ta1.email, course.course_id, "804", course.course_department) self.assertEqual(response, "No Such Lab or Lecture")
def test_multi_users(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.password = "******" ad1.type = "administrator" ad1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.password = "******" sup1.type = "supervisor" sup1.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'administrator' session.save() response = client.get('/edit_info/') self.assertEqual(response.status_code, 200) self.assertContains(response, "Edit Info") self.assertContains(response, "Current Email:") self.assertContains(response, "*****@*****.**") all_messages = [msg for msg in get_messages(response.wsgi_request)] self.assertEqual(len(all_messages), 0)
def test_improper_admin_ins(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.type = "administrator" ad1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.type = "supervisor" sup1.save() ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() course = models.Course() course.num_labs = 0 course.current_num_TA = 1 course.num_lectures = 1 course.course_id = "301" course.course_department = "COMPSCI" course.save() inscourse = models.InstructorCourse() inscourse.instructor = inst1 inscourse.course = course inscourse.save() tacourse = models.TACourse() tacourse.TA = ta1 tacourse.course = course tacourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'instructor' session.save() response = client.post('/assign_ta_lablec/', data={ 'email': "*****@*****.**", 'course_id': "301", 'course_department': "COMPSCI", 'course_section': "401" }, follow="true") self.assertEqual(response.status_code, 200) self.assertContains(response, "Assign TA to Labs/Lectures") self.assertContains(response, "no such ta")
def setUp(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.type = "administrator" ad1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.type = "supervisor" sup1.save()
def setUp(self): self.person1 = models.User() self.person1.email = "*****@*****.**" self.person1.password = "******" self.person1.save() self.person2 = models.User() self.person2.email = "*****@*****.**" self.person2.password = "******" self.person2.save()
def test_ta_not_assigned_sup(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.type = "supervisor" sup1.save() course = models.Course() course.num_labs = 0 course.current_num_TA = 0 course.num_lectures = 1 course.instructor = "DEFAULT" course.course_id = "301" course.course_department = "COMPSCI" course.save() course1 = models.Course() course1.num_labs = 0 course1.current_num_TA = 0 course1.num_lectures = 1 course1.instructor = "DEFAULT" course1.course_id = "302" course1.course_department = "COMPSCI" course1.save() tacourse = models.TACourse() tacourse.TA = ta1 tacourse.course = course tacourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'supervisor' session.save() response = client.post('/assign_ta_lablec/', data={ 'email': "*****@*****.**", 'course_id': "302", 'course_department': "COMPSCI", 'course_section': "401" }, follow="true") self.assertEqual(response.status_code, 200) self.assertContains(response, "Assign TA") self.assertContains(response, "TA not assigned to this course!")
def test_not_assigned_to_course_ins(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() inst3 = models.User() inst3.email = "*****@*****.**" inst3.type = "instructor" inst3.save() course = models.Course() course.num_labs = 0 course.current_num_TA = 1 course.num_lectures = 1 course.course_id = "301" course.course_department = "COMPSCI" course.save() inscourse = models.InstructorCourse() inscourse.instructor = inst1 inscourse.course = course inscourse.save() tacourse = models.TACourse() tacourse.TA = ta1 tacourse.course = course tacourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'instructor' session.save() response = client.post('/assign_ta_lablec/', data={ 'email': "*****@*****.**", 'course_id': "301", 'course_department': "COMPSCI", 'course_section': "401" }, follow="true") self.assertEqual(response.status_code, 200) self.assertContains(response, "Assign TA to Labs/Lectures") self.assertContains(response, "You are not assigned to this course")
def test_view_info_two_users(self): self.person1 = models.User() self.person1.email = "*****@*****.**" self.person1.password = "******" self.person1.save() self.person2 = models.User() self.person2.email = "*****@*****.**" self.person2.password = "******" self.person2.save() self.assertEquals(Commands.view_info("*****@*****.**"), ["*****@*****.**", "DEFAULT_PASSWORD", "DEFAULT", "000.000.0000", "not set"])
def test_ta_not_assigned_ins(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() course = models.Course() course.num_labs = 0 course.current_num_TA = 1 course.num_lectures = 1 course.course_id = "301" course.course_department = "COMPSCI" course.save() course1 = models.Course() course1.num_labs = 0 course1.current_num_TA = 0 course1.num_lectures = 1 course1.instructor = "DEFAULT" course1.course_id = "302" course1.course_department = "COMPSCI" course1.save() inscourse = models.InstructorCourse() inscourse.instructor = inst1 inscourse.course = course inscourse.save() inscourse1 = models.InstructorCourse() inscourse1.instructor = inst1 inscourse1.course = course1 inscourse1.save() tacourse = models.TACourse() tacourse.TA = ta1 tacourse.course = course tacourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() response = Commands.assign_ta_to_lablec(inst1.email, ta1.email, course1.course_id, lec.lecture_section, course.course_department) self.assertEqual(response, "TA not assigned to this course!")
def test_improper_admin_ins(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.type = "administrator" ad1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.type = "supervisor" sup1.save() ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() course = models.Course() course.num_labs = 0 course.current_num_TA = 1 course.num_lectures = 1 course.course_id = "301" course.course_department = "COMPSCI" course.save() inscourse = models.InstructorCourse() inscourse.instructor = inst1 inscourse.course = course inscourse.save() tacourse = models.TACourse() tacourse.TA = ta1 tacourse.course = course tacourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() response = Commands.assign_ta_to_lablec(inst1.email, ad1.email, course.course_id, lec.lecture_section, course.course_department) self.assertEqual(response, "no such ta")
def test_access_info_ta_course_tapage(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.name = "Ted" ta1.save() course1 = models.Course() course1.course_department = "COMPSCI" course1.course_id = "100" course1.course_dept_id = "COMPSCI100" course1.ta = "*****@*****.**" course1.save() ta1_course1 = models.TACourse() ta1_course1.TA = ta1 ta1_course1.course = course1 ta1_course1.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'administrator' session.save() response = client.get('/access_info/') self.assertEqual(response.status_code, 200) response = client.get('/ta/[email protected]/') self.assertContains(response, "TA: Ted") self.assertContains(response, "COMPSCI100")
def test_admin_super_default(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.password = "******" ad1.type = "administrator" ad1.save() sup1 = models.User() sup1.email = "*****@*****.**" sup1.password = "******" sup1.type = "supervisor" sup1.save() users = Commands.read_public() self.assertEquals(users[0], ad1) self.assertEquals(users[1], sup1)
def test_add_two_course(self): inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() course = models.Course() course.course_department = "COMPSCI" course.course_id = "301" course.save() course2 = models.Course() course2.course_department = "COMPSCI" course2.course_id = "351" course2.save() insCourse = models.InstructorCourse() insCourse.course = course insCourse.instructor = inst1 insCourse.save() insCourse = models.InstructorCourse() insCourse.course = course2 insCourse.instructor = inst1 insCourse.save() response = Commands.view_course_assignments(inst1.email) self.assertEqual(response, "COMPSCI: 301 \nCOMPSCI: 351 \n")
def test_access_info_inst_course_instpage(self): inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.name = "Bob" inst1.save() course1 = models.Course() course1.course_department = "COMPSCI" course1.course_id = "100" course1.course_dept_id = "COMPSCI100" course1.instructor = "*****@*****.**" course1.save() inst1_course1 = models.InstructorCourse() inst1_course1.instructor = inst1 inst1_course1.course = course1 inst1_course1.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'administrator' session.save() response = client.get('/access_info/') self.assertEqual(response.status_code, 200) response = client.get('/instructor/[email protected]/') self.assertContains(response, "Instructor: Bob") self.assertContains(response, "COMPSCI100")
def test_add_one_course(self): inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() course = models.Course() course.course_department = "COMPSCI" course.course_id = "301" course.save() insCourse = models.InstructorCourse() insCourse.course = course insCourse.instructor = inst1 insCourse.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'instructor' session.save() response = client.get('/view_course_assignments/') # status code 200, we loaded the correct page self.assertEqual(response.status_code, 200) # since we returned a render, it has all the content of the page # we'll just look for the header self.assertContains(response, "Courses Assigned to You:") all_messages = [msg for msg in get_messages(response.wsgi_request)] # no error messages info_string = str(all_messages[0]) self.assertEqual(info_string, "COMPSCI: 301 \n") self.assertEqual(len(all_messages), 1)
def test_invalid_section(self): inst1 = models.User() inst1.email = "*****@*****.**" inst1.type = "instructor" inst1.save() course = models.Course() course.num_labs = 2 course.current_num_TA = 0 course.num_lectures = 1 course.course_id = "301" course.course_department = "COMPSCI" course.save() inscourse = models.InstructorCourse() inscourse.instructor = inst1 inscourse.course = course inscourse.save() lec = models.Lecture() lec.course = course lec.lecture_section = "401" lec.save() response = Commands.assign_instructor_to_lec(inst1.email, course.course_id, "402", course.course_department) self.assertEqual(response, "Lecture section does not exist")
def test_super_post(self): ta1 = models.User() ta1.email = "*****@*****.**" ta1.type = "ta" ta1.save() course = models.Course() course.num_labs = 2 course.current_num_TA = 0 course.num_lectures = 1 course.instructor = "DEFAULT" course.course_id = "301" course.course_department = "COMPSCI" course.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'supervisor' session.save() response = client.post('/assign_ta/', data={ 'email': "*****@*****.**", 'course_id': "301", 'course_department': "COMPSCI" }, follow="true") self.assertEqual(response.status_code, 200) self.assertContains(response, "Assign TA") self.assertContains(response, "TA Assigned!")
def test_user_big_address(self): ad1 = models.User() ad1.email = "*****@*****.**" ad1.password = "******" ad1.type = "administrator" ad1.address = "123456789123 Longstreetnamed St, Except In The Basement, " \ "Really Big Town Name Like So Huge, NY 21221" ad1.save() client = Client() session = client.session session['email'] = '*****@*****.**' session['type'] = 'administrator' session.save() response = client.get('/edit_info/') self.assertEqual(response.status_code, 200) self.assertContains(response, "Edit Info") self.assertContains(response, "Current Address:") self.assertContains( response, "123456789123 Longstreetnamed St, Except In The Basement, " "Really Big Town Name Like So Huge, NY 21221") all_messages = [msg for msg in get_messages(response.wsgi_request)] self.assertEqual(len(all_messages), 0)
def test_delete_account_after_TA_assign(self): tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.type = "TA" tester.save() course = models.Course() course.num_labs = 2 course.current_num_TA = 0 course.num_lectures = 1 course.instructor = "DEFAULT" course.course_id = "301" course.course_department = "COMPSCI" course.save() lab = models.Lab() lab.TA = tester.email lab.course = course lab.lab_section = 499 lab.save() self.assertEqual(Commands.delete_account("*****@*****.**"), "[email protected] has been deleted successfully") self.assertEqual(len(models.User.objects.filter(email="*****@*****.**")), 0) self.assertEqual(models.Lab.objects.get(lab_section=499).TA, "no TA")
def test_edit_account_bad_field(self): tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.save() self.assertEqual( Commands.edit_account("*****@*****.**", "wrong_field", "new_pass"), "The entered data field does not exist")
def test_edit_account_dne(self): tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.save() self.assertEqual( Commands.edit_account("*****@*****.**", "password", "new_pass"), "Entered user does not exist")
def test_change_phone_no_args(self): self.ad1 = models.User() self.ad1.email = "*****@*****.**" self.ad1.password = "******" self.ad1.type = "administrator" self.ad1.save() with self.assertRaises(TypeError): Commands.change_phone()
def test_change_phone_wrong_arg_type(self): self.ad1 = models.User() self.ad1.email = "*****@*****.**" self.ad1.password = "******" self.ad1.type = "administrator" self.ad1.save() with self.assertRaises(AttributeError): Commands.change_phone(1, 2)