authentik.core.tests.test_token_auth
Test token auth
1"""Test token auth""" 2 3from datetime import timedelta 4 5from django.test import TestCase 6from django.utils.timezone import now 7 8from authentik.core.auth import TokenBackend 9from authentik.core.models import Token, TokenIntents, User 10from authentik.core.tests.utils import RequestFactory 11from authentik.flows.planner import FlowPlan 12from authentik.flows.views.executor import SESSION_KEY_PLAN 13 14 15class TestTokenAuth(TestCase): 16 """Test token auth""" 17 18 def setUp(self) -> None: 19 self.user = User.objects.create(username="test-user") 20 self.token = Token.objects.create( 21 expiring=False, user=self.user, intent=TokenIntents.INTENT_APP_PASSWORD 22 ) 23 self.request_factory = RequestFactory() 24 # To test with session we need to create a request and pass it through all middlewares 25 self.request = self.request_factory.get("/") 26 self.request.session[SESSION_KEY_PLAN] = FlowPlan("test") 27 28 def test_token_auth(self): 29 """Test auth with token""" 30 self.assertEqual( 31 TokenBackend().authenticate(self.request, "test-user", self.token.key), self.user 32 ) 33 34 def test_token_auth_expired(self): 35 """Test auth with token""" 36 self.token.expiring = True 37 self.token.expires = now() - timedelta(hours=1) 38 self.token.save() 39 self.assertEqual( 40 TokenBackend().authenticate(self.request, "test-user", self.token.key), None 41 ) 42 43 def test_token_auth_none(self): 44 """Test auth with token (non-existent user)""" 45 self.assertIsNone( 46 TokenBackend().authenticate(self.request, "test-user-foo", self.token.key), self.user 47 ) 48 49 def test_token_auth_invalid(self): 50 """Test auth with token (invalid token)""" 51 self.assertIsNone( 52 TokenBackend().authenticate(self.request, "test-user", self.token.key + "foo"), 53 self.user, 54 )
class
TestTokenAuth(django.test.testcases.TestCase):
16class TestTokenAuth(TestCase): 17 """Test token auth""" 18 19 def setUp(self) -> None: 20 self.user = User.objects.create(username="test-user") 21 self.token = Token.objects.create( 22 expiring=False, user=self.user, intent=TokenIntents.INTENT_APP_PASSWORD 23 ) 24 self.request_factory = RequestFactory() 25 # To test with session we need to create a request and pass it through all middlewares 26 self.request = self.request_factory.get("/") 27 self.request.session[SESSION_KEY_PLAN] = FlowPlan("test") 28 29 def test_token_auth(self): 30 """Test auth with token""" 31 self.assertEqual( 32 TokenBackend().authenticate(self.request, "test-user", self.token.key), self.user 33 ) 34 35 def test_token_auth_expired(self): 36 """Test auth with token""" 37 self.token.expiring = True 38 self.token.expires = now() - timedelta(hours=1) 39 self.token.save() 40 self.assertEqual( 41 TokenBackend().authenticate(self.request, "test-user", self.token.key), None 42 ) 43 44 def test_token_auth_none(self): 45 """Test auth with token (non-existent user)""" 46 self.assertIsNone( 47 TokenBackend().authenticate(self.request, "test-user-foo", self.token.key), self.user 48 ) 49 50 def test_token_auth_invalid(self): 51 """Test auth with token (invalid token)""" 52 self.assertIsNone( 53 TokenBackend().authenticate(self.request, "test-user", self.token.key + "foo"), 54 self.user, 55 )
Test token auth
def
setUp(self) -> None:
19 def setUp(self) -> None: 20 self.user = User.objects.create(username="test-user") 21 self.token = Token.objects.create( 22 expiring=False, user=self.user, intent=TokenIntents.INTENT_APP_PASSWORD 23 ) 24 self.request_factory = RequestFactory() 25 # To test with session we need to create a request and pass it through all middlewares 26 self.request = self.request_factory.get("/") 27 self.request.session[SESSION_KEY_PLAN] = FlowPlan("test")
Hook method for setting up the test fixture before exercising it.
def
test_token_auth(self):
29 def test_token_auth(self): 30 """Test auth with token""" 31 self.assertEqual( 32 TokenBackend().authenticate(self.request, "test-user", self.token.key), self.user 33 )
Test auth with token
def
test_token_auth_expired(self):
35 def test_token_auth_expired(self): 36 """Test auth with token""" 37 self.token.expiring = True 38 self.token.expires = now() - timedelta(hours=1) 39 self.token.save() 40 self.assertEqual( 41 TokenBackend().authenticate(self.request, "test-user", self.token.key), None 42 )
Test auth with token