Example #1
0
    def test_edit_account_info1(self):
        Users.create("rock", "Ilikeprogramming", 0).save()
        self.user = Users.objects.get(username="******")

        self.user.reset_password("Ilove361")

        self.assertEqual(self.user.password, "Ilove361")
Example #2
0
    def test_to_string0(self):

        Users.create("username", "password", 0).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(str(self.user),
                         "User username has no role permissions.")
Example #3
0
    def test_to_string2(self):
        Users.create("username", "password", 10).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(
            str(self.user),
            "User username has [Supervisor] [Instructor] role permissions.")
Example #4
0
    def test_create_account(self):

        Users.create("jayson", "12345", 8).save()
        self.user = Users.objects.get(username="******")

        self.assertTrue(self.user.username == "jayson")
        self.assertFalse(self.user.username == "12345")
Example #5
0
    def test_edit_account_info2(self):

        Users.create("rock", "Ilikeprogramming", 0).save()
        self.user = Users.objects.get(username="******")

        self.user.reset_roles(2)

        self.assertEqual(self.user.roles, 2)
Example #6
0
    def post(self, request):
        aUser = request.user
        username = request.POST.get("username", "")
        password = request.POST.get("password", "")
        roles = int(request.POST.get("roles", ""))
        ok = aUser.is_at_least(4)
        auth = aUser.is_at_least(roles)

        alreadyCreated = Users.objects.filter(username=username)

        create = False
        if ok and auth and not alreadyCreated:
            user = Users.create(username, password, roles)
            user.set_password(password)
            user.save()
            ContactInfo.objects.create(account=user)
            create = True
            return render(request, 'createaccount.html', {
                "ok": ok,
                "auth": auth,
                "create": create
            })
        else:
            return render(
                request, 'createaccount.html', {
                    "ok": ok,
                    "auth": auth,
                    "create": create,
                    "message": "Error! Account already exists!"
                })
Example #7
0
    def test_set_contact_info1(self):

        Users.create("username", "password", 0).save()
        self.user = Users.objects.get(username="******")

        name = "myName"
        ph_num = "4145551234"
        email = "*****@*****.**"
        address = "1234 Street St, Milwaukee, WI, 53211"

        self.user.set_contact_info(name, ph_num, email, address)

        self.assertEqual(self.user.contactinfo.name, name)
        self.assertEqual(self.user.contactinfo.phoneNumber, ph_num)
        self.assertEqual(self.user.contactinfo.email, email)
        self.assertEqual(self.user.contactinfo.address, address)
Example #8
0
    def test_deleteFail_IneligbleUser(self):  #12
        self.users = Users.create(username="******", password="******", roles=8)
        self.users.set_password('admin')
        self.users.save()

        self.users = Users.create(username="******", password="******", roles=1)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login check check", request=self.request)
        result = self.app.command("deleteAccount admin", request=self.request)
        self.assertEquals(
            result,
            "Permission denied - Your role may not delete accounts of this type!"
        )
Example #9
0
    def test_loginSuccess(self):  #1

        self.users = Users.create(username="******", password="******", roles=4)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        result = self.app.command(s="login admin admin", request=self.request)
        self.assertEqual(result, "Login successful.")
Example #10
0
    def test_logout(self):  #4
        self.users = Users.create(username="******", password="******", roles=4)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)
        result = self.app.command("logout", request=self.request)
        self.assertEqual(result, "Logged out")
Example #11
0
    def test_loginFailure(self):  #2
        # Users from any account (provided they have an account) logs in with a wrong password
        self.users = Users.create(username="******",
                                  password="******",
                                  roles=4)
        self.users.set_password('carl')
        self.users.save()

        self.request.user = self.users
        result = self.app.command("login test123 admin", request=self.request)
        self.assertEqual(result, "Login failed, wrong password")
Example #12
0
    def test_deleteAccountSuccess(self):  #9
        self.users = Users.create(username="******", password="******", roles=8)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)

        result = self.app.command("deleteAccount admin", request=self.request)
        self.assertEquals(result, "User deleted")
Example #13
0
    def test_createAccountSuccess(self):  #5
        self.users = Users.create(username="******", password="******", roles=8)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)

        result = self.app.command(s="createAccount username password 2",
                                  request=self.request)
        self.assertEquals(result, "Account created successfully.")
Example #14
0
    def test_createAccountFailAccount(self):  #8
        self.users = Users.create(username="******", password="******", roles=0)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)
        result = self.app.command(s="createAccount username password 8",
                                  request=self.request)
        self.assertEquals(
            result, "Permission denied - Your role may not create accounts!")
Example #15
0
    def test_editContactInfoSuccess(self):  #41
        # Users successfully edits a field in their contact info
        self.users = Users.create(username="******", password="******", roles=8)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)

        result = self.app.command("editContactInfo 1 2 3 4 5 6",
                                  request=self.request)
        self.assertEqual(result, "field successfully revised")
Example #16
0
    def test_editContactInfoFieldDoesNotExist(self):  #43
        # Users failures to edit a field in their contact info because it doesn't exist
        self.users = Users.create(username="******", password="******", roles=8)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)

        result = self.app.command("editContactInfo 1 2 3 4 5 6 7",
                                  request=self.request)
        self.assertEqual(result, "Field does not exist")
Example #17
0
    def test_deleteAccountFail(self):  #10
        # Eligible Users logged in, deleting nonexistent account
        self.users = Users.create(username="******", password="******", roles=8)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)

        result = self.app.command("deleteAccount Username",
                                  request=self.request)
        self.assertEquals(result, "No such user")
Example #18
0
    def test_createAccountFailDup(self):  #6
        # Eligible Users creating duplicate Users
        self.users = Users.create(username="******", password="******", roles=8)
        self.users.set_password('admin')
        self.users.save()

        self.request.user = self.users

        self.app.command(s="login admin admin", request=self.request)
        self.app.command(s="createAccount username password 2",
                         request=self.request)

        result = self.app.command(s="createAccount username password 2",
                                  request=self.request)
        self.assertEquals(result, "Account already exists!")
Example #19
0
 def command(self, s, request):
   try:
     currentUser = self.getActiveUser(request)
   except:
     pass
   tokens = s.split()
   cmd = tokens[0]
   args = tokens[1:]
   if cmd == "login":
     if len(args) < 2:
       return "Insufficient arguments for command " + cmd
     username = args[0]
     password = args[1]
     try:
       user = Users.objects.get(username=username)
       if user.check_password(password):
         login(request, user)
         return "Login successful."
       else:
         return "Login failed, wrong password"
     except Exception as e:
       print(e)
       return "Login failed, no such user"
   elif cmd == 'logout':
     logout(request)
     return "Logged out"
   elif cmd == "createCourse":
     return "Pass - implemented in Web Interface not Command Line."
     if len(args) < 3:
       return "Insufficient arguments for command " + cmd
     coursename = args[0]
     department = args[1]
     coursenumber = args[2]
     permission = True  # todo : check permissions of active user
     Course.create(coursename, department, coursenumber).save()
     return "Course created successfully."
   elif cmd == "createAccount":
     if len(args) < 3:
       return "Insufficient arguments for command " + cmd
     username = args[0]
     password = args[1]
     role = int(args[2])
     try:
       permission = self.getActiveUser(request).is_at_least(4)
     except:
       return "Permission denied - Your role may not create accounts!"
     greater = self.getActiveUser(request).is_at_least(role)
     if permission:
       if not greater:
         return "Permission denied - Your role may not create accounts of this type!"
       else:
         try:
           user = Users.create(username, password, role)
           user.set_password(password) #hashing fix
           user.save() #ci looks for user in db so save first
           user.set_contact_info("","","","","","") #initialize ci
           user.save() #now save updated ci
         except:
           return "Account already exists!"
         return "Account created successfully."
     else:
       return "Permission denied - Your role may not create accounts!"
   elif cmd == "deleteAccount":
     if len(args) < 1:
       return "Insufficient arguments for command " + cmd
     username = args[0]
     permission = self.getActiveUser(request).is_at_least(4)
     user = Users.objects.filter(username=username)
     if len(user) == 0:
       return "No such user"
     if not self.getActiveUser(request).is_at_least(user[0].roles):
       return "Permission denied - Your role may not delete accounts of this type!"
     user[0].delete()
     return "User deleted"
   elif cmd == "editContactInfo":
     if len(args) < 6:
       return "Missing arguments"
     if len(args) > 6:
       return "Field does not exist"
     try:
       u = self.getActiveUser(request)
       if not u:
         return "Login a user first"
       if len(ContactInfo.objects.filter(account=u)) == 0:
         ContactInfo.create(u.username, args[0], args[1], args[2], args[3], args[4], args[5]).save()
         return "field successfully revised"
       u.editContactInfo(u, args[0], args[1], args[2], args[3], args[4], args[5])
       return "field successfully revised"
     except:
       return "Login a user first"
   # todo : support other commands
   elif cmd == "assignInstructor":
     return "Pass - implemented in Web Interface not Command Line."
     course = Course.objects.get(courseName=args[0])
     user = Users.objects.get(username=args[1])
     course.assign_instructor(user)
     return "Successfully added instructor to course"
   elif cmd == "removeInstructor":
     return "Pass - implemented in Web Interface not Command Line."
   elif cmd == "assignTACourse":
     return "Pass - implemented in Web Interface not Command Line."
     course = Course.objects.get(courseName=args[0])
     user = Users.objects.get(username=args[1])
     ta = TA.create(user, True, 1)
     ta.save()
     course.assign_TA(ta)
     return "Successfully added TA to course"
   elif cmd == "sendEmail":
     return "Failed- Unimplemented"
   elif cmd == "removeTACourse":
     return "Pass - implemented in Web Interface not Command Line."
     return
   elif cmd == "assignTALab":
     return "Pass - implemented in Web Interface not Command Line."
     lab = Lab.objects.get(labNumber=args[0])
     user = Users.objects.get(username=args[1])
     ta = TA.create(user, True, 1)
     ta.save()
     lab.assign_TA(ta)
     return "Successfully added TA to lab"
   elif cmd == "removeTALab":
     return "Pass - implemented in Web Interface not Command Line."
     return
   elif cmd == "courseAssignments":
     return "Pass - implemented in Web Interface not Command Line."
     return
   elif cmd == "readTAAssignment":
     return "Pass - implemented in Web Interface not Command Line."
     return
   elif cmd == "readAllTAAssignment":
     return "Pass - implemented in Web Interface not Command Line."
     return
   elif cmd == "readPublicContactInfo":
     return "Pass - implemented in Web Interface not Command Line."
   elif cmd == "readAllTAAssignments":
     return "Pass - implemented in Web Interface not Command Line."
   elif cmd == "editAccount":
     return "Pass - implemented in Web Interface not Command Line."
   else:
     return "Unrecognized command: " + cmd
Example #20
0
    def test_is_at_least0(self):
        Users.create("name", "pass", 0).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(self.user.is_at_least(1), False)
Example #21
0
    def test_is_at_least3(self):
        Users.create("name", "pass", 4).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(self.user.is_at_least(4), True)
Example #22
0
    def test_is_ta1(self):

        Users.create("Sean", "1234", randint(0, 15) & 14).save()
        self.user = Users.objects.get(username="******")
        self.assertFalse(self.user.is_ta())
Example #23
0
    def test_is_instructor0(self):

        Users.create("Sean", "1234", randint(0, 15) | 2).save()
        self.user = Users.objects.get(username="******")
        self.assertTrue(self.user.is_instructor())
Example #24
0
    def test_print_admin0(self):

        Users.create("username", "password", randint(0, 15) & 3).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(self.user.printAdmin(), "[Non-admin]")
Example #25
0
    def test_is_above2(self):
        Users.create("name", "pass", 4).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(self.user.is_above(4), False)
Example #26
0
    def test_print_admin2(self):
        Users.create("username", "password", randint(0, 15) | 8).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(self.user.printAdmin(), "[Supervisor]")
Example #27
0
    def test_is_admin0(self):

        Users.create("Sean", "1234", randint(0, 15) | 4).save()
        self.user = Users.objects.get(username="******")
        self.assertTrue(self.user.is_admin())
Example #28
0
    def test_print_admin1(self):
        Users.create("username", "password", randint(0, 15) & 7 | 4).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(self.user.printAdmin(), "[Administrator]")
Example #29
0
    def test_is_above1(self):
        Users.create("name", "pass", 1).save()
        self.user = Users.objects.get(username="******")

        self.assertEqual(self.user.is_above(0), True)