def test_grant_revoke_access(self): tester = User('*****@*****.**') with self.assertRaises(LabControlLoginDisabledError): User.login('*****@*****.**', 'password') tester.grant_access() obs = User.login('*****@*****.**', 'password') self.assertEqual(obs, tester) tester.revoke_access() with self.assertRaises(LabControlLoginDisabledError): User.login('*****@*****.**', 'password')
def test_access_handler_post(self): tester = User('*****@*****.**') response = self.post('/auth/access/', {'email': '*****@*****.**', 'operation': 'grant'}) self.assertEqual(response.code, 200) self.assertEqual(User.login('*****@*****.**', 'password'), tester) response = self.post('/auth/access/', {'email': '*****@*****.**', 'operation': 'revoke'}) self.assertEqual(response.code, 200) with self.assertRaises(LabControlLoginDisabledError): User.login('*****@*****.**', 'password') response = self.post('/auth/access/', {'email': '*****@*****.**', 'operation': 'unknown'}) self.assertEqual(response.code, 400)
def test_login(self): exp = User('*****@*****.**') obs = User.login('*****@*****.**', 'password') self.assertEqual(obs, exp) with self.assertRaises(LabControlUnknownIdError): User.login('*****@*****.**', 'password') with self.assertRaises(LabControlLoginError): User.login('*****@*****.**', 'wrongpassword') with self.assertRaises(LabControlLoginDisabledError): User.login('*****@*****.**', 'password')
def post(self): username = self.get_argument('username', '').strip().lower() passwd = self.get_argument('password', '') error_msg = "" user = None try: user = User.login(username, passwd) except LabControlUnknownIdError: error_msg = "Unknown user name" except LabControlLoginError: error_msg = "Incorrect password" except LabControlLoginDisabledError: error_msg = "User not allowed on this portal" if user: self.set_current_user(username) self.redirect("/") else: self.render("index.html", message=error_msg, level='danger')