authentik.tenants.tests.test_api

Test Tenant API

 1"""Test Tenant API"""
 2
 3from json import loads
 4
 5from django.urls import reverse
 6
 7from authentik.lib.config import CONFIG
 8from authentik.lib.generators import generate_id
 9from authentik.tenants.tests.utils import TenantAPITestCase
10
11TENANTS_API_KEY = generate_id()
12HEADERS = {"Authorization": f"Bearer {TENANTS_API_KEY}"}
13
14
15class TestAPI(TenantAPITestCase):
16    """Test api view"""
17
18    @CONFIG.patch("outposts.disable_embedded_outpost", True)
19    @CONFIG.patch("tenants.enabled", True)
20    @CONFIG.patch("tenants.api_key", TENANTS_API_KEY)
21    def test_tenant_create_delete(self):
22        """Test Tenant creation API Endpoint"""
23        response = self.client.post(
24            reverse(
25                "authentik_api:tenant-list",
26            ),
27            data={"name": generate_id(), "schema_name": "t_" + generate_id(length=63 - 2).lower()},
28            headers=HEADERS,
29        )
30        self.assertEqual(response.status_code, 201)
31        body = loads(response.content.decode())
32
33        self.assertSchemaExists(body["schema_name"])
34
35        response = self.client.delete(
36            reverse(
37                "authentik_api:tenant-detail",
38                kwargs={"pk": body["tenant_uuid"]},
39            ),
40            headers=HEADERS,
41        )
42        self.assertEqual(response.status_code, 204)
43        self.assertSchemaDoesntExist(body["schema_name"])
44
45    @CONFIG.patch("outposts.disable_embedded_outpost", True)
46    @CONFIG.patch("tenants.enabled", True)
47    @CONFIG.patch("tenants.api_key", TENANTS_API_KEY)
48    def test_unauthenticated(self):
49        """Test Tenant creation API Endpoint"""
50        response = self.client.get(
51            reverse(
52                "authentik_api:tenant-list",
53            ),
54        )
55        self.assertEqual(response.status_code, 403)
56
57    @CONFIG.patch("outposts.disable_embedded_outpost", True)
58    @CONFIG.patch("tenants.enabled", True)
59    @CONFIG.patch("tenants.api_key", "")
60    def test_no_api_key_configured(self):
61        """Test Tenant creation API Endpoint"""
62        response = self.client.get(
63            reverse(
64                "authentik_api:tenant-list",
65            ),
66        )
67        self.assertEqual(response.status_code, 403)
TENANTS_API_KEY = 'jNAlX0ZB4xXY5UjgbIqicuEvZjYmvLASzhCJSYWY'
HEADERS = {'Authorization': 'Bearer jNAlX0ZB4xXY5UjgbIqicuEvZjYmvLASzhCJSYWY'}
16class TestAPI(TenantAPITestCase):
17    """Test api view"""
18
19    @CONFIG.patch("outposts.disable_embedded_outpost", True)
20    @CONFIG.patch("tenants.enabled", True)
21    @CONFIG.patch("tenants.api_key", TENANTS_API_KEY)
22    def test_tenant_create_delete(self):
23        """Test Tenant creation API Endpoint"""
24        response = self.client.post(
25            reverse(
26                "authentik_api:tenant-list",
27            ),
28            data={"name": generate_id(), "schema_name": "t_" + generate_id(length=63 - 2).lower()},
29            headers=HEADERS,
30        )
31        self.assertEqual(response.status_code, 201)
32        body = loads(response.content.decode())
33
34        self.assertSchemaExists(body["schema_name"])
35
36        response = self.client.delete(
37            reverse(
38                "authentik_api:tenant-detail",
39                kwargs={"pk": body["tenant_uuid"]},
40            ),
41            headers=HEADERS,
42        )
43        self.assertEqual(response.status_code, 204)
44        self.assertSchemaDoesntExist(body["schema_name"])
45
46    @CONFIG.patch("outposts.disable_embedded_outpost", True)
47    @CONFIG.patch("tenants.enabled", True)
48    @CONFIG.patch("tenants.api_key", TENANTS_API_KEY)
49    def test_unauthenticated(self):
50        """Test Tenant creation API Endpoint"""
51        response = self.client.get(
52            reverse(
53                "authentik_api:tenant-list",
54            ),
55        )
56        self.assertEqual(response.status_code, 403)
57
58    @CONFIG.patch("outposts.disable_embedded_outpost", True)
59    @CONFIG.patch("tenants.enabled", True)
60    @CONFIG.patch("tenants.api_key", "")
61    def test_no_api_key_configured(self):
62        """Test Tenant creation API Endpoint"""
63        response = self.client.get(
64            reverse(
65                "authentik_api:tenant-list",
66            ),
67        )
68        self.assertEqual(response.status_code, 403)

Test api view

@CONFIG.patch('outposts.disable_embedded_outpost', True)
@CONFIG.patch('tenants.enabled', True)
@CONFIG.patch('tenants.api_key', TENANTS_API_KEY)
def test_tenant_create_delete(self):
19    @CONFIG.patch("outposts.disable_embedded_outpost", True)
20    @CONFIG.patch("tenants.enabled", True)
21    @CONFIG.patch("tenants.api_key", TENANTS_API_KEY)
22    def test_tenant_create_delete(self):
23        """Test Tenant creation API Endpoint"""
24        response = self.client.post(
25            reverse(
26                "authentik_api:tenant-list",
27            ),
28            data={"name": generate_id(), "schema_name": "t_" + generate_id(length=63 - 2).lower()},
29            headers=HEADERS,
30        )
31        self.assertEqual(response.status_code, 201)
32        body = loads(response.content.decode())
33
34        self.assertSchemaExists(body["schema_name"])
35
36        response = self.client.delete(
37            reverse(
38                "authentik_api:tenant-detail",
39                kwargs={"pk": body["tenant_uuid"]},
40            ),
41            headers=HEADERS,
42        )
43        self.assertEqual(response.status_code, 204)
44        self.assertSchemaDoesntExist(body["schema_name"])

Test Tenant creation API Endpoint

@CONFIG.patch('outposts.disable_embedded_outpost', True)
@CONFIG.patch('tenants.enabled', True)
@CONFIG.patch('tenants.api_key', TENANTS_API_KEY)
def test_unauthenticated(self):
46    @CONFIG.patch("outposts.disable_embedded_outpost", True)
47    @CONFIG.patch("tenants.enabled", True)
48    @CONFIG.patch("tenants.api_key", TENANTS_API_KEY)
49    def test_unauthenticated(self):
50        """Test Tenant creation API Endpoint"""
51        response = self.client.get(
52            reverse(
53                "authentik_api:tenant-list",
54            ),
55        )
56        self.assertEqual(response.status_code, 403)

Test Tenant creation API Endpoint

@CONFIG.patch('outposts.disable_embedded_outpost', True)
@CONFIG.patch('tenants.enabled', True)
@CONFIG.patch('tenants.api_key', '')
def test_no_api_key_configured(self):
58    @CONFIG.patch("outposts.disable_embedded_outpost", True)
59    @CONFIG.patch("tenants.enabled", True)
60    @CONFIG.patch("tenants.api_key", "")
61    def test_no_api_key_configured(self):
62        """Test Tenant creation API Endpoint"""
63        response = self.client.get(
64            reverse(
65                "authentik_api:tenant-list",
66            ),
67        )
68        self.assertEqual(response.status_code, 403)

Test Tenant creation API Endpoint