Exemplo n.º 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",
     )
Exemplo n.º 2
0
 def test_get_user_request(self):
     request = RequestFactory().get("/", get_parameters(self.user))
     self.assertEqual(get_user(request), self.user)
Exemplo n.º 3
0
 def test_get_user_bad_token(self):
     token = "~!@#$%^&*~!@#$%^&*~"
     self.assertIsNone(get_user(token))
     self.assertLogsContain("Bad token")
Exemplo n.º 4
0
 def test_get_user_empty_token(self):
     token = ""
     self.assertIsNone(get_user(token))
Exemplo n.º 5
0
 def test_get_user(self):
     request = self.get_request_with_token()
     self.assertEqual(get_user(request), self.user)
Exemplo n.º 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)
Exemplo n.º 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")
Exemplo n.º 8
0
 def test_get_user_request_with_bad_token(self):
     request = RequestFactory().get("/", {"sesame": "~!@#$%^&*~!@#$%^&*~"})
     self.assertIsNone(get_user(request))
     self.assertLogsContain("Bad token")
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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")
Exemplo n.º 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)
Exemplo n.º 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")
Exemplo n.º 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")
Exemplo n.º 15
0
 def test_get_user_expired_token(self):
     request = self.get_request_with_token()
     self.assertIsNone(get_user(request))
     self.assertLogsContain("Expired token")
Exemplo n.º 16
0
 def test_get_user_request_without_token(self):
     request = RequestFactory().get("/")
     self.assertIsNone(get_user(request))
Exemplo n.º 17
0
 def test_get_user_request_with_empty_token(self):
     request = RequestFactory().get("/", {"sesame": ""})
     self.assertIsNone(get_user(request))
Exemplo n.º 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)
Exemplo n.º 19
0
 def test_get_user_expired_token(self):
     token = get_token(self.user)
     self.assertIsNone(get_user(token))
     self.assertLogsContain("Expired token")
Exemplo n.º 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)
Exemplo n.º 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")
Exemplo n.º 22
0
 def test_get_user_token(self):
     token = get_token(self.user)
     self.assertEqual(get_user(token), self.user)
Exemplo n.º 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")
Exemplo n.º 24
0
def token(request, token):
    user = get_user(token)
    if user is None:
        raise PermissionDenied
    login(request, user)
    return redirect("/")