authentik.tenants.tests.test_local_settings

Test Settings API

 1"""Test Settings API"""
 2
 3from django.urls import reverse
 4from rest_framework.test import APITestCase
 5
 6from authentik.core.tests.utils import create_test_admin_user
 7from authentik.tenants.flags import Flag
 8
 9
10class TestLocalSettingsAPI(APITestCase):
11    """Test settings API"""
12
13    def setUp(self):
14        super().setUp()
15        self.local_admin = create_test_admin_user()
16
17    def test_settings_flags(self):
18        """Test settings API"""
19
20        class TestFlag(Flag[bool], key="tenants_test_flag"):
21
22            default = False
23            visibility = "public"
24
25        self.client.force_login(self.local_admin)
26        response = self.client.patch(
27            reverse("authentik_api:tenant_settings"),
28            data={
29                "flags": {"tenants_test_flag": True},
30            },
31        )
32        self.assertEqual(response.status_code, 200)
33
34    def test_settings_flags_incorrect(self):
35        """Test settings API"""
36
37        class TestFlag(Flag[bool], key="tenants_test_flag"):
38
39            default = False
40            visibility = "public"
41
42        self.client.force_login(self.local_admin)
43        response = self.client.patch(
44            reverse("authentik_api:tenant_settings"),
45            data={
46                "flags": {"tenants_test_flag": 123},
47            },
48        )
49        self.assertEqual(response.status_code, 400)
50        self.assertJSONEqual(
51            response.content,
52            {"flags": ["Value for flag tenants_test_flag needs to be of type bool."]},
53        )
class TestLocalSettingsAPI(rest_framework.test.APITestCase):
11class TestLocalSettingsAPI(APITestCase):
12    """Test settings API"""
13
14    def setUp(self):
15        super().setUp()
16        self.local_admin = create_test_admin_user()
17
18    def test_settings_flags(self):
19        """Test settings API"""
20
21        class TestFlag(Flag[bool], key="tenants_test_flag"):
22
23            default = False
24            visibility = "public"
25
26        self.client.force_login(self.local_admin)
27        response = self.client.patch(
28            reverse("authentik_api:tenant_settings"),
29            data={
30                "flags": {"tenants_test_flag": True},
31            },
32        )
33        self.assertEqual(response.status_code, 200)
34
35    def test_settings_flags_incorrect(self):
36        """Test settings API"""
37
38        class TestFlag(Flag[bool], key="tenants_test_flag"):
39
40            default = False
41            visibility = "public"
42
43        self.client.force_login(self.local_admin)
44        response = self.client.patch(
45            reverse("authentik_api:tenant_settings"),
46            data={
47                "flags": {"tenants_test_flag": 123},
48            },
49        )
50        self.assertEqual(response.status_code, 400)
51        self.assertJSONEqual(
52            response.content,
53            {"flags": ["Value for flag tenants_test_flag needs to be of type bool."]},
54        )

Test settings API

def setUp(self):
14    def setUp(self):
15        super().setUp()
16        self.local_admin = create_test_admin_user()

Hook method for setting up the test fixture before exercising it.

def test_settings_flags(self):
18    def test_settings_flags(self):
19        """Test settings API"""
20
21        class TestFlag(Flag[bool], key="tenants_test_flag"):
22
23            default = False
24            visibility = "public"
25
26        self.client.force_login(self.local_admin)
27        response = self.client.patch(
28            reverse("authentik_api:tenant_settings"),
29            data={
30                "flags": {"tenants_test_flag": True},
31            },
32        )
33        self.assertEqual(response.status_code, 200)

Test settings API

def test_settings_flags_incorrect(self):
35    def test_settings_flags_incorrect(self):
36        """Test settings API"""
37
38        class TestFlag(Flag[bool], key="tenants_test_flag"):
39
40            default = False
41            visibility = "public"
42
43        self.client.force_login(self.local_admin)
44        response = self.client.patch(
45            reverse("authentik_api:tenant_settings"),
46            data={
47                "flags": {"tenants_test_flag": 123},
48            },
49        )
50        self.assertEqual(response.status_code, 400)
51        self.assertJSONEqual(
52            response.content,
53            {"flags": ["Value for flag tenants_test_flag needs to be of type bool."]},
54        )

Test settings API