authentik.enterprise.reports.tests.test_event_export

 1from django.contrib.contenttypes.models import ContentType
 2from django.test.testcases import TestCase
 3
 4from authentik.core.tests.utils import create_test_user
 5from authentik.enterprise.reports.models import DataExport
 6from authentik.enterprise.reports.tests.utils import patch_license
 7from authentik.events.models import Event, EventAction
 8
 9
10@patch_license
11class TestEventExport(TestCase):
12    def setUp(self) -> None:
13        self.user = create_test_user()
14        self.user.assign_perms_to_managed_role("authentik_events.view_event")
15
16        self.e1 = Event.new(EventAction.LOGIN, user=self.user)
17        self.e1.save()
18        self.e2 = Event.new(EventAction.LOGIN_FAILED, user=self.user)
19        self.e2.save()
20
21    def test_type_filter(self):
22        export = DataExport.objects.create(
23            content_type=ContentType.objects.get_for_model(Event),
24            requested_by=self.user,
25            query_params={"actions": [EventAction.LOGIN]},
26        )
27        records = list(export.get_queryset())
28        self.assertEqual(len(records), 1)
29        self.assertEqual(records[0], self.e1)
@patch_license
class TestEventExport(django.test.testcases.TestCase):
11@patch_license
12class TestEventExport(TestCase):
13    def setUp(self) -> None:
14        self.user = create_test_user()
15        self.user.assign_perms_to_managed_role("authentik_events.view_event")
16
17        self.e1 = Event.new(EventAction.LOGIN, user=self.user)
18        self.e1.save()
19        self.e2 = Event.new(EventAction.LOGIN_FAILED, user=self.user)
20        self.e2.save()
21
22    def test_type_filter(self):
23        export = DataExport.objects.create(
24            content_type=ContentType.objects.get_for_model(Event),
25            requested_by=self.user,
26            query_params={"actions": [EventAction.LOGIN]},
27        )
28        records = list(export.get_queryset())
29        self.assertEqual(len(records), 1)
30        self.assertEqual(records[0], self.e1)

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:
13    def setUp(self) -> None:
14        self.user = create_test_user()
15        self.user.assign_perms_to_managed_role("authentik_events.view_event")
16
17        self.e1 = Event.new(EventAction.LOGIN, user=self.user)
18        self.e1.save()
19        self.e2 = Event.new(EventAction.LOGIN_FAILED, user=self.user)
20        self.e2.save()

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

def test_type_filter(self):
22    def test_type_filter(self):
23        export = DataExport.objects.create(
24            content_type=ContentType.objects.get_for_model(Event),
25            requested_by=self.user,
26            query_params={"actions": [EventAction.LOGIN]},
27        )
28        records = list(export.get_queryset())
29        self.assertEqual(len(records), 1)
30        self.assertEqual(records[0], self.e1)