authentik.core.tests.test_authenticated_sessions_api
Test AuthenticatedSessions API
1"""Test AuthenticatedSessions API""" 2 3from json import loads 4 5from django.urls.base import reverse 6from rest_framework.test import APITestCase 7 8from authentik.core.models import AuthenticatedSession, Session, User 9from authentik.core.tests.utils import create_test_admin_user 10 11 12class TestAuthenticatedSessionsAPI(APITestCase): 13 """Test AuthenticatedSessions API""" 14 15 def setUp(self) -> None: 16 super().setUp() 17 self.user = create_test_admin_user() 18 self.other_user = User.objects.create(username="normal-user") 19 20 def test_list(self): 21 """Test session list endpoint""" 22 self.client.force_login(self.user) 23 response = self.client.get(reverse("authentik_api:authenticatedsession-list")) 24 self.assertEqual(response.status_code, 200) 25 26 def test_non_admin_list(self): 27 """Test non-admin list""" 28 self.client.force_login(self.other_user) 29 response = self.client.get(reverse("authentik_api:authenticatedsession-list")) 30 self.assertEqual(response.status_code, 200) 31 body = loads(response.content.decode()) 32 self.assertEqual(body["pagination"]["count"], 1) 33 34 def test_delete(self): 35 """Test deletion""" 36 self.client.force_login(self.user) 37 self.assertEqual(AuthenticatedSession.objects.all().count(), 1) 38 self.assertEqual(Session.objects.all().count(), 1) 39 response = self.client.delete( 40 reverse( 41 "authentik_api:authenticatedsession-detail", 42 kwargs={"uuid": AuthenticatedSession.objects.first().uuid}, 43 ) 44 ) 45 self.assertEqual(response.status_code, 204) 46 self.assertEqual(AuthenticatedSession.objects.all().count(), 0) 47 self.assertEqual(Session.objects.all().count(), 0)
class
TestAuthenticatedSessionsAPI(rest_framework.test.APITestCase):
13class TestAuthenticatedSessionsAPI(APITestCase): 14 """Test AuthenticatedSessions API""" 15 16 def setUp(self) -> None: 17 super().setUp() 18 self.user = create_test_admin_user() 19 self.other_user = User.objects.create(username="normal-user") 20 21 def test_list(self): 22 """Test session list endpoint""" 23 self.client.force_login(self.user) 24 response = self.client.get(reverse("authentik_api:authenticatedsession-list")) 25 self.assertEqual(response.status_code, 200) 26 27 def test_non_admin_list(self): 28 """Test non-admin list""" 29 self.client.force_login(self.other_user) 30 response = self.client.get(reverse("authentik_api:authenticatedsession-list")) 31 self.assertEqual(response.status_code, 200) 32 body = loads(response.content.decode()) 33 self.assertEqual(body["pagination"]["count"], 1) 34 35 def test_delete(self): 36 """Test deletion""" 37 self.client.force_login(self.user) 38 self.assertEqual(AuthenticatedSession.objects.all().count(), 1) 39 self.assertEqual(Session.objects.all().count(), 1) 40 response = self.client.delete( 41 reverse( 42 "authentik_api:authenticatedsession-detail", 43 kwargs={"uuid": AuthenticatedSession.objects.first().uuid}, 44 ) 45 ) 46 self.assertEqual(response.status_code, 204) 47 self.assertEqual(AuthenticatedSession.objects.all().count(), 0) 48 self.assertEqual(Session.objects.all().count(), 0)
Test AuthenticatedSessions API
def
setUp(self) -> None:
16 def setUp(self) -> None: 17 super().setUp() 18 self.user = create_test_admin_user() 19 self.other_user = User.objects.create(username="normal-user")
Hook method for setting up the test fixture before exercising it.
def
test_list(self):
21 def test_list(self): 22 """Test session list endpoint""" 23 self.client.force_login(self.user) 24 response = self.client.get(reverse("authentik_api:authenticatedsession-list")) 25 self.assertEqual(response.status_code, 200)
Test session list endpoint
def
test_non_admin_list(self):
27 def test_non_admin_list(self): 28 """Test non-admin list""" 29 self.client.force_login(self.other_user) 30 response = self.client.get(reverse("authentik_api:authenticatedsession-list")) 31 self.assertEqual(response.status_code, 200) 32 body = loads(response.content.decode()) 33 self.assertEqual(body["pagination"]["count"], 1)
Test non-admin list
def
test_delete(self):
35 def test_delete(self): 36 """Test deletion""" 37 self.client.force_login(self.user) 38 self.assertEqual(AuthenticatedSession.objects.all().count(), 1) 39 self.assertEqual(Session.objects.all().count(), 1) 40 response = self.client.delete( 41 reverse( 42 "authentik_api:authenticatedsession-detail", 43 kwargs={"uuid": AuthenticatedSession.objects.first().uuid}, 44 ) 45 ) 46 self.assertEqual(response.status_code, 204) 47 self.assertEqual(AuthenticatedSession.objects.all().count(), 0) 48 self.assertEqual(Session.objects.all().count(), 0)
Test deletion