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 post(request): request.session.set_expiry(300) email = request.POST["email"] password = request.POST["password"] name = request.POST["name"] phone = request.POST["phone"] address = request.POST["address"] pick_anything = False if email != "": pick_anything = True response = Commands.change_email(request.session["email"], email) if response == "Email address changed.": messages.success(request, response) request.session["email"] = email else: messages.error(request, response) if password != "": pick_anything = True response = Commands.change_password(request.session["email"], password) if response == "Password changed.": messages.success(request, response) else: messages.error(request, response) if name != "": pick_anything = True response = Commands.change_name(request.session["email"], name) if response == "Name changed.": messages.success(request, response) else: messages.error(request, response) if phone != "": pick_anything = True response = Commands.change_phone(request.session["email"], phone) if response == "Phone number changed.": messages.success(request, response) else: messages.error(request, response) if address != "": pick_anything = True response = Commands.change_address(request.session["email"], address) if response == "Address changed.": messages.success(request, response) else: messages.error(request, response) if not pick_anything: messages.error(request, "You should pick something to change.") return redirect("EditInfo1")
def test_logout_incorrect(self): self.assertEquals( Commands.login("*****@*****.**", "DEFAULT_BAD_PASSWORD"), "Invalid login info") self.assertFalse(Commands.logout("*****@*****.**")) model_person1 = models.User.objects.get(email=self.person1.email) self.assertFalse(model_person1.isLoggedOn)
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)
def test_change_address_no_email(self): self.ad1 = models.User() self.ad1.email = "*****@*****.**" self.ad1.password = "******" self.ad1.type = "administrator" self.ad1.save() with self.assertRaises(TypeError): Commands.change_address("1234 5th Street Milwaukee, WI 53111")
def test_change_address_wrong_types(self): self.ad1 = models.User() self.ad1.email = "*****@*****.**" self.ad1.password = "******" self.ad1.type = "administrator" self.ad1.save() with self.assertRaises(TypeError): Commands.change_address(1, 2)
def test_logout_correct(self): self.assertEquals( Commands.login("*****@*****.**", "DEFAULT_PASSWORD"), "Login successful") model_person1 = models.User.objects.get(email=self.person1.email) self.assertTrue(model_person1.isLoggedOn) self.assertTrue(Commands.logout("*****@*****.**")) model_person1 = models.User.objects.get(email=self.person1.email) self.assertFalse(model_person1.isLoggedOn)
def test_edit_account_password(self): # create a test user in the system tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.save() # test edit password Commands.edit_account("*****@*****.**", "password", "new_pass") tester = models.User.objects.get(email="*****@*****.**") self.assertEqual(tester.password, "new_pass")
def test_delete_account_after_delete_instructor(self): # create a test user in the system tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.type = "instructor" tester.save() self.assertEqual(Commands.delete_account("*****@*****.**"), "[email protected] has been deleted successfully") self.assertEqual(Commands.delete_account("*****@*****.**"), "Such User does not exist") self.assertEqual(len(models.User.objects.filter(email="*****@*****.**")), 0)
def test_edit_account_name(self): # create a test user in the system tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.save() # test edit name Commands.edit_account("*****@*****.**", "name", "Howard Stern") tester = models.User.objects.get(email="*****@*****.**") self.assertEqual(tester.name, "Howard Stern")
def test_edit_account_address(self): # create a test user in the system tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.save() # test edit name Commands.edit_account("*****@*****.**", "address", "1234 W ABC St") tester = models.User.objects.get(email="*****@*****.**") self.assertEqual(tester.address, "1234 W ABC St")
def test_view_info_too_many_args(self): self.ad1 = models.User() self.ad1.email = "*****@*****.**" self.ad1.password = "******" self.ad1.type = "administrator" self.ad1.name = "Adminbot 4000" self.ad1.phone = "414.111.1111" self.ad1.address = "1234 5th Street Milwaukee, WI 53111" self.ad1.save() with self.assertRaises(TypeError): Commands.view_info("*****@*****.**", "extra stuff")
def test_edit_account_email(self): # create a test user in the system tester = models.User() tester.email = "*****@*****.**" tester.password = "******" tester.save() # test edit email Commands.edit_account("*****@*****.**", "email", "*****@*****.**") with self.assertRaises(models.User.DoesNotExist): models.User.objects.get(email="*****@*****.**") tester = models.User.objects.get(email="*****@*****.**") self.assertEqual(tester.email, "*****@*****.**")
def test_view_info_wrong_type_args(self): self.ad1 = models.User() self.ad1.email = "*****@*****.**" self.ad1.password = "******" self.ad1.type = "administrator" self.ad1.name = "Adminbot 4000" self.ad1.phone = "414.111.1111" self.ad1.address = "1234 5th Street Milwaukee, WI 53111" self.ad1.save() with self.assertRaises(models.User.DoesNotExist): Commands.view_info(1)
def __init__(self, config): """ :param config: API configuration :type config: dict """ self.cmd = Commands(self, config) self.last_update_id = '' self.token = config['telegram_token'] self.api_link = config['telegram_api_link'] self.api_host = config['telegram_api_host'] self.commands = self.cmd.get_commands()
def test_login_multiple_mismatch(self): self.assertEquals( Commands.login("*****@*****.**", "DEFAULT_BAD_PASSWORD"), "Invalid login info") model_person1 = models.User.objects.get(email=self.person1.email) self.assertFalse(model_person1.isLoggedOn) self.assertEquals( Commands.login("*****@*****.**", "DEFAULT_PASSWORD"), "Login successful") model_person2 = models.User.objects.get(email=self.person2.email) self.assertTrue(model_person2.isLoggedOn)
def test_create_account_invalid_parameter_non_uwm_email(self): # non uwm email self.assertEquals(Commands.create_account("*****@*****.**", "happy_trees", "instructor"), "Email address must be uwm address.") # not in db with self.assertRaises(models.User.DoesNotExist): models.User.objects.get(email="*****@*****.**")
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_create_account_invalid_parameter_weird_email(self): # weird email, props to Grant for this test self.assertEquals(Commands.create_account("[email protected]@uwm.edu", "lotta_bob", "instructor"), "Email address must be uwm address.") # not in db with self.assertRaises(models.User.DoesNotExist): models.User.objects.get(email="[email protected]@uwm.edu")
def test_create_course_with_labs(self): # create a new course as admin self.assertEqual(Commands.create_course("COMPSCI", "361", "1", "2"), "Course created successfully") # get the added course from the db da_course = models.Course.objects.get(course_id="361") # make sure found course is the same self.assertEqual(da_course.course_department, "COMPSCI") self.assertEqual(da_course.course_id, 361) self.assertEqual(da_course.num_lectures, 1) self.assertEqual(da_course.num_labs, 2) # should find one lecture section da_lecture = models.Lecture.objects.filter(course=da_course) self.assertEqual(da_lecture[0].lecture_section, "401") self.assertEqual(da_lecture[0].course, da_course) # shouldn't be able to access any more lectures tied to course with self.assertRaises(IndexError): print(da_lecture[1]) # should find two lab sections da_labs = models.Lab.objects.filter(course=da_course) self.assertEqual(da_labs[0].lab_section, "801") self.assertEqual(da_labs[0].course, da_course) self.assertEqual(da_labs[1].lab_section, "802") self.assertEqual(da_labs[1].course, da_course)
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_create_account_other(self): # create whatever test self.assertEquals(Commands.create_account("*****@*****.**", "not_today", "horse"), "Invalid account type.") # not in db with self.assertRaises(models.User.DoesNotExist): models.User.objects.get(email="*****@*****.**")
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_create_account_invalid_parameter_not_an_email_addy(self): # not really an email addy self.assertEquals(Commands.create_account("TRUST_ME_IM_EMAIL", "seriously_real_address", "ta"), "Email address must be uwm address.") # not in db with self.assertRaises(models.User.DoesNotExist): models.User.objects.get(email="TRUST_ME_IM_EMAIL")
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_create_account_supervisor(self): # create supervisor test self.assertEquals(Commands.create_account("*****@*****.**", "super1", "supervisor"), "Invalid account type.") # not in db with self.assertRaises(models.User.DoesNotExist): models.User.objects.get(email="*****@*****.**")
def test_proper(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, lec.lecture_section, course.course_department) self.assertEqual(response, "Instructor assigned to lecture")
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_create_account_administrator(self): # create admin test self.assertEquals(Commands.create_account("*****@*****.**", "labyrinth", "administrator"), "Invalid account type.") # not in db with self.assertRaises(models.User.DoesNotExist): models.User.objects.get(email="*****@*****.**")