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
TestEventExport11@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)