authentik.providers.scim.tests.test_filter_groups
SCIM Group Filters tests
1"""SCIM Group Filters tests""" 2 3from django.test import TestCase 4 5from authentik.blueprints.tests import apply_blueprint 6from authentik.core.models import Application, Group, User 7from authentik.lib.generators import generate_id 8from authentik.providers.scim.models import SCIMMapping, SCIMProvider 9 10 11class SCIMFilterGroupsTests(TestCase): 12 """SCIM Group Filters tests""" 13 14 @apply_blueprint("system/providers-scim.yaml") 15 def setUp(self) -> None: 16 # Delete all users and groups as to only have the test users and groups 17 User.objects.all().exclude_anonymous().delete() 18 Group.objects.all().delete() 19 20 self.provider: SCIMProvider = SCIMProvider.objects.create( 21 name=generate_id(), 22 url="https://localhost", 23 token=generate_id(), 24 exclude_users_service_account=True, 25 ) 26 self.provider.property_mappings.add( 27 SCIMMapping.objects.get(managed="goauthentik.io/providers/scim/user") 28 ) 29 self.provider.property_mappings_group.add( 30 SCIMMapping.objects.get(managed="goauthentik.io/providers/scim/group") 31 ) 32 33 self.app: Application = Application.objects.create( 34 name=generate_id(), 35 slug=generate_id(), 36 ) 37 self.app.backchannel_providers.add(self.provider) 38 39 # Create test groups 40 self.group1 = Group.objects.create(name="group-1") 41 self.group2 = Group.objects.create(name="group-2") 42 self.group3 = Group.objects.create(name="group-3") 43 44 def test_no_group_filters(self): 45 """Test with no group filters set""" 46 group_qs = self.provider.get_object_qs(Group) 47 48 self.assertEqual( 49 set([self.group1.pk, self.group2.pk, self.group3.pk]), 50 set(group_qs.values_list("pk", flat=True)), 51 ) 52 53 def test_single_group_filter(self): 54 """Test with one group filter set""" 55 self.provider.group_filters.add(self.group1) 56 57 group_qs = self.provider.get_object_qs(Group) 58 59 self.assertEqual( 60 set([self.group1.pk]), 61 set(group_qs.values_list("pk", flat=True)), 62 ) 63 64 def test_multiple_group_filters(self): 65 """Test with multiple group filters set""" 66 self.provider.group_filters.add(self.group1) 67 self.provider.group_filters.add(self.group2) 68 69 group_qs = self.provider.get_object_qs(Group) 70 71 self.assertEqual( 72 set([self.group1.pk, self.group2.pk]), 73 set(group_qs.values_list("pk", flat=True)), 74 )
class
SCIMFilterGroupsTests(django.test.testcases.TestCase):
12class SCIMFilterGroupsTests(TestCase): 13 """SCIM Group Filters tests""" 14 15 @apply_blueprint("system/providers-scim.yaml") 16 def setUp(self) -> None: 17 # Delete all users and groups as to only have the test users and groups 18 User.objects.all().exclude_anonymous().delete() 19 Group.objects.all().delete() 20 21 self.provider: SCIMProvider = SCIMProvider.objects.create( 22 name=generate_id(), 23 url="https://localhost", 24 token=generate_id(), 25 exclude_users_service_account=True, 26 ) 27 self.provider.property_mappings.add( 28 SCIMMapping.objects.get(managed="goauthentik.io/providers/scim/user") 29 ) 30 self.provider.property_mappings_group.add( 31 SCIMMapping.objects.get(managed="goauthentik.io/providers/scim/group") 32 ) 33 34 self.app: Application = Application.objects.create( 35 name=generate_id(), 36 slug=generate_id(), 37 ) 38 self.app.backchannel_providers.add(self.provider) 39 40 # Create test groups 41 self.group1 = Group.objects.create(name="group-1") 42 self.group2 = Group.objects.create(name="group-2") 43 self.group3 = Group.objects.create(name="group-3") 44 45 def test_no_group_filters(self): 46 """Test with no group filters set""" 47 group_qs = self.provider.get_object_qs(Group) 48 49 self.assertEqual( 50 set([self.group1.pk, self.group2.pk, self.group3.pk]), 51 set(group_qs.values_list("pk", flat=True)), 52 ) 53 54 def test_single_group_filter(self): 55 """Test with one group filter set""" 56 self.provider.group_filters.add(self.group1) 57 58 group_qs = self.provider.get_object_qs(Group) 59 60 self.assertEqual( 61 set([self.group1.pk]), 62 set(group_qs.values_list("pk", flat=True)), 63 ) 64 65 def test_multiple_group_filters(self): 66 """Test with multiple group filters set""" 67 self.provider.group_filters.add(self.group1) 68 self.provider.group_filters.add(self.group2) 69 70 group_qs = self.provider.get_object_qs(Group) 71 72 self.assertEqual( 73 set([self.group1.pk, self.group2.pk]), 74 set(group_qs.values_list("pk", flat=True)), 75 )
SCIM Group Filters tests
@apply_blueprint('system/providers-scim.yaml')
def
setUp(self) -> None:
15 @apply_blueprint("system/providers-scim.yaml") 16 def setUp(self) -> None: 17 # Delete all users and groups as to only have the test users and groups 18 User.objects.all().exclude_anonymous().delete() 19 Group.objects.all().delete() 20 21 self.provider: SCIMProvider = SCIMProvider.objects.create( 22 name=generate_id(), 23 url="https://localhost", 24 token=generate_id(), 25 exclude_users_service_account=True, 26 ) 27 self.provider.property_mappings.add( 28 SCIMMapping.objects.get(managed="goauthentik.io/providers/scim/user") 29 ) 30 self.provider.property_mappings_group.add( 31 SCIMMapping.objects.get(managed="goauthentik.io/providers/scim/group") 32 ) 33 34 self.app: Application = Application.objects.create( 35 name=generate_id(), 36 slug=generate_id(), 37 ) 38 self.app.backchannel_providers.add(self.provider) 39 40 # Create test groups 41 self.group1 = Group.objects.create(name="group-1") 42 self.group2 = Group.objects.create(name="group-2") 43 self.group3 = Group.objects.create(name="group-3")
Hook method for setting up the test fixture before exercising it.
def
test_no_group_filters(self):
45 def test_no_group_filters(self): 46 """Test with no group filters set""" 47 group_qs = self.provider.get_object_qs(Group) 48 49 self.assertEqual( 50 set([self.group1.pk, self.group2.pk, self.group3.pk]), 51 set(group_qs.values_list("pk", flat=True)), 52 )
Test with no group filters set
def
test_single_group_filter(self):
54 def test_single_group_filter(self): 55 """Test with one group filter set""" 56 self.provider.group_filters.add(self.group1) 57 58 group_qs = self.provider.get_object_qs(Group) 59 60 self.assertEqual( 61 set([self.group1.pk]), 62 set(group_qs.values_list("pk", flat=True)), 63 )
Test with one group filter set
def
test_multiple_group_filters(self):
65 def test_multiple_group_filters(self): 66 """Test with multiple group filters set""" 67 self.provider.group_filters.add(self.group1) 68 self.provider.group_filters.add(self.group2) 69 70 group_qs = self.provider.get_object_qs(Group) 71 72 self.assertEqual( 73 set([self.group1.pk, self.group2.pk]), 74 set(group_qs.values_list("pk", flat=True)), 75 )
Test with multiple group filters set