Example #1
0
 def test_get_user_no_request_or_token(self):
     with self.assertRaises(TypeError) as exc:
         self.assertIsNone(get_user(None))
     self.assertEqual(
         str(exc.exception),
         "get_user() expects a HTTPRequest or a token",
     )
Example #2
0
 def test_get_user_request(self):
     request = RequestFactory().get("/", get_parameters(self.user))
     self.assertEqual(get_user(request), self.user)
Example #3
0
 def test_get_user_bad_token(self):
     token = "~!@#$%^&*~!@#$%^&*~"
     self.assertIsNone(get_user(token))
     self.assertLogsContain("Bad token")
Example #4
0
 def test_get_user_empty_token(self):
     token = ""
     self.assertIsNone(get_user(token))
Example #5
0
 def test_get_user(self):
     request = self.get_request_with_token()
     self.assertEqual(get_user(request), self.user)
Example #6
0
 def test_get_user_does_not_invalidate_tokens(self):
     token = get_token(self.user)
     self.assertEqual(get_user(token), self.user)
     self.assertEqual(get_user(token), self.user)
Example #7
0
 def test_get_user_inactive_user(self):
     token = get_token(self.user)
     self.user.is_active = False
     self.user.save()
     self.assertIsNone(get_user(token))
     self.assertLogsContain("Unknown or inactive user")
Example #8
0
 def test_get_user_request_with_bad_token(self):
     request = RequestFactory().get("/", {"sesame": "~!@#$%^&*~!@#$%^&*~"})
     self.assertIsNone(get_user(request))
     self.assertLogsContain("Bad token")
Example #9
0
 def test_get_user_force_not_update_last_login(self):
     request = self.get_request_with_token()
     last_login = self.user.last_login
     self.assertEqual(get_user(request, update_last_login=False), self.user)
     self.user.refresh_from_db()
     self.assertEqual(self.user.last_login, last_login)
Example #10
0
 def test_get_user_updates_last_login_for_one_time_tokens(self):
     request = self.get_request_with_token()
     last_login = self.user.last_login
     self.assertEqual(get_user(request), self.user)
     self.user.refresh_from_db()
     self.assertGreater(self.user.last_login, last_login)
Example #11
0
 def test_get_user_invalidates_one_time_tokens(self):
     request = self.get_request_with_token()
     self.assertEqual(get_user(request), self.user)
     self.assertIsNone(get_user(request))
     self.assertLogsContain("Invalid token")
Example #12
0
 def test_get_user_does_not_invalidate_tokens(self):
     request = self.get_request_with_token()
     self.assertEqual(get_user(request), self.user)
     self.assertEqual(get_user(request), self.user)
Example #13
0
 def test_get_user_unknown_user(self):
     request = self.get_request_with_token()
     self.user.delete()
     self.assertIsNone(get_user(request))
     self.assertLogsContain("Unknown or inactive user")
Example #14
0
 def test_get_user_inactive_user(self):
     request = self.get_request_with_token()
     self.user.is_active = False
     self.user.save()
     self.assertIsNone(get_user(request))
     self.assertLogsContain("Unknown or inactive user")
Example #15
0
 def test_get_user_expired_token(self):
     request = self.get_request_with_token()
     self.assertIsNone(get_user(request))
     self.assertLogsContain("Expired token")
Example #16
0
 def test_get_user_request_without_token(self):
     request = RequestFactory().get("/")
     self.assertIsNone(get_user(request))
Example #17
0
 def test_get_user_request_with_empty_token(self):
     request = RequestFactory().get("/", {"sesame": ""})
     self.assertIsNone(get_user(request))
Example #18
0
 def test_get_user_updates_last_login_for_one_time_tokens(self):
     token = get_token(self.user)
     last_login = self.user.last_login
     self.assertEqual(get_user(token), self.user)
     self.user.refresh_from_db()
     self.assertGreater(self.user.last_login, last_login)
Example #19
0
 def test_get_user_expired_token(self):
     token = get_token(self.user)
     self.assertIsNone(get_user(token))
     self.assertLogsContain("Expired token")
Example #20
0
 def test_get_user_force_not_update_last_login(self):
     token = get_token(self.user)
     last_login = self.user.last_login
     self.assertEqual(get_user(token, update_last_login=False), self.user)
     self.user.refresh_from_db()
     self.assertEqual(self.user.last_login, last_login)
Example #21
0
 def test_get_user_unknown_user(self):
     token = get_token(self.user)
     self.user.delete()
     self.assertIsNone(get_user(token))
     self.assertLogsContain("Unknown or inactive user")
Example #22
0
 def test_get_user_token(self):
     token = get_token(self.user)
     self.assertEqual(get_user(token), self.user)
Example #23
0
 def test_get_user_invalidates_one_time_tokens(self):
     token = get_token(self.user)
     self.assertEqual(get_user(token), self.user)
     self.assertIsNone(get_user(token))
     self.assertLogsContain("Invalid token")
Example #24
0
def token(request, token):
    user = get_user(token)
    if user is None:
        raise PermissionDenied
    login(request, user)
    return redirect("/")