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