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")
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.")
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.")
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")
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)
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!" })
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)
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!" )
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.")
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")
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")
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")
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.")
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!")
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")
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")
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")
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!")
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
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)
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)
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())
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())
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]")
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)
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]")
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())
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]")
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)