authentik.enterprise.reports.tests.test_api
1from django.contrib.contenttypes.models import ContentType 2from django.urls import reverse 3from rest_framework.test import APITestCase 4 5from authentik.core.models import User 6from authentik.core.tests.utils import create_test_admin_user 7from authentik.enterprise.reports.tests.utils import patch_license 8from authentik.events.models import Event 9 10 11@patch_license 12class TestExportAPI(APITestCase): 13 def setUp(self) -> None: 14 self.user = create_test_admin_user() 15 self.client.force_login(self.user) 16 17 def test_create_user_export(self): 18 """Test User export endpoint""" 19 response = self.client.post( 20 reverse("authentik_api:user-export"), 21 ) 22 self.assertEqual(response.status_code, 201) 23 self.assertEqual( 24 response.headers["Location"], 25 reverse("authentik_api:dataexport-detail", kwargs={"pk": response.data["id"]}), 26 ) 27 self.assertEqual(response.data["requested_by"]["pk"], self.user.pk) 28 self.assertEqual(response.data["completed"], False) 29 self.assertEqual(response.data["file_url"], "") 30 self.assertEqual(response.data["query_params"], {}) 31 self.assertEqual( 32 response.data["content_type"]["id"], 33 ContentType.objects.get_for_model(User).id, 34 ) 35 36 def test_create_event_export(self): 37 """Test Event export endpoint""" 38 response = self.client.post( 39 reverse("authentik_api:event-export"), 40 ) 41 self.assertEqual(response.status_code, 201) 42 self.assertEqual( 43 response.headers["Location"], 44 reverse("authentik_api:dataexport-detail", kwargs={"pk": response.data["id"]}), 45 ) 46 self.assertEqual(response.data["requested_by"]["pk"], self.user.pk) 47 self.assertEqual(response.data["completed"], False) 48 self.assertEqual(response.data["file_url"], "") 49 self.assertEqual(response.data["query_params"], {}) 50 self.assertEqual( 51 response.data["content_type"]["id"], 52 ContentType.objects.get_for_model(Event).id, 53 )
@patch_license
class
TestExportAPI12@patch_license 13class TestExportAPI(APITestCase): 14 def setUp(self) -> None: 15 self.user = create_test_admin_user() 16 self.client.force_login(self.user) 17 18 def test_create_user_export(self): 19 """Test User export endpoint""" 20 response = self.client.post( 21 reverse("authentik_api:user-export"), 22 ) 23 self.assertEqual(response.status_code, 201) 24 self.assertEqual( 25 response.headers["Location"], 26 reverse("authentik_api:dataexport-detail", kwargs={"pk": response.data["id"]}), 27 ) 28 self.assertEqual(response.data["requested_by"]["pk"], self.user.pk) 29 self.assertEqual(response.data["completed"], False) 30 self.assertEqual(response.data["file_url"], "") 31 self.assertEqual(response.data["query_params"], {}) 32 self.assertEqual( 33 response.data["content_type"]["id"], 34 ContentType.objects.get_for_model(User).id, 35 ) 36 37 def test_create_event_export(self): 38 """Test Event export endpoint""" 39 response = self.client.post( 40 reverse("authentik_api:event-export"), 41 ) 42 self.assertEqual(response.status_code, 201) 43 self.assertEqual( 44 response.headers["Location"], 45 reverse("authentik_api:dataexport-detail", kwargs={"pk": response.data["id"]}), 46 ) 47 self.assertEqual(response.data["requested_by"]["pk"], self.user.pk) 48 self.assertEqual(response.data["completed"], False) 49 self.assertEqual(response.data["file_url"], "") 50 self.assertEqual(response.data["query_params"], {}) 51 self.assertEqual( 52 response.data["content_type"]["id"], 53 ContentType.objects.get_for_model(Event).id, 54 )
Similar to TransactionTestCase, but use transaction.atomic() to achieve
test isolation.
In most situations, TestCase should be preferred to TransactionTestCase as it allows faster execution. However, there are some situations where using TransactionTestCase might be necessary (e.g. testing some transactional behavior).
On database backends with no transaction support, TestCase behaves as TransactionTestCase.
def
setUp(self) -> None:
14 def setUp(self) -> None: 15 self.user = create_test_admin_user() 16 self.client.force_login(self.user)
Hook method for setting up the test fixture before exercising it.
def
test_create_user_export(self):
18 def test_create_user_export(self): 19 """Test User export endpoint""" 20 response = self.client.post( 21 reverse("authentik_api:user-export"), 22 ) 23 self.assertEqual(response.status_code, 201) 24 self.assertEqual( 25 response.headers["Location"], 26 reverse("authentik_api:dataexport-detail", kwargs={"pk": response.data["id"]}), 27 ) 28 self.assertEqual(response.data["requested_by"]["pk"], self.user.pk) 29 self.assertEqual(response.data["completed"], False) 30 self.assertEqual(response.data["file_url"], "") 31 self.assertEqual(response.data["query_params"], {}) 32 self.assertEqual( 33 response.data["content_type"]["id"], 34 ContentType.objects.get_for_model(User).id, 35 )
Test User export endpoint
def
test_create_event_export(self):
37 def test_create_event_export(self): 38 """Test Event export endpoint""" 39 response = self.client.post( 40 reverse("authentik_api:event-export"), 41 ) 42 self.assertEqual(response.status_code, 201) 43 self.assertEqual( 44 response.headers["Location"], 45 reverse("authentik_api:dataexport-detail", kwargs={"pk": response.data["id"]}), 46 ) 47 self.assertEqual(response.data["requested_by"]["pk"], self.user.pk) 48 self.assertEqual(response.data["completed"], False) 49 self.assertEqual(response.data["file_url"], "") 50 self.assertEqual(response.data["query_params"], {}) 51 self.assertEqual( 52 response.data["content_type"]["id"], 53 ContentType.objects.get_for_model(Event).id, 54 )
Test Event export endpoint