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")
Exemplo n.º 2
0
    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)
Exemplo n.º 4
0
 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()
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
    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")
Exemplo n.º 7
0
    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")
Exemplo n.º 10
0
    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)
Exemplo n.º 16
0
    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="*****@*****.**")
Exemplo n.º 19
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_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")
Exemplo n.º 29
0
    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="*****@*****.**")