1616
1717
1818@pytest .mark .importance ("high" )
19+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
1920@pytest .mark .topology (KnownTopology .LDAP )
20- def test_nss__fallback_homedir (client : Client , provider : GenericProvider ) :
21+ def test_nss__fallback_homedir (client : Client , provider : LDAP , config : str ) -> None :
2122 """
2223 :title: Test the effect of the "fallback_homedir" option
2324 :description:
2425 This test checks that the 'fallback_homedir' option in the [nss]
2526 section of sssd.conf provides a home directory only when the user
2627 entry in LDAP does not have one.
28+
29+ This is an LDAP only provider test because it requires to configure an
30+ empty attribute value.
2731 :setup:
2832 1. Create users in provider: one with a home directory and one
2933 with an empty home directory.
@@ -41,6 +45,8 @@ def test_nss__fallback_homedir(client: Client, provider: GenericProvider):
4145 provider .user ("user1" ).add (home = "/home/A" )
4246 provider .user ("user2" ).add (home = "" )
4347
48+ if config == "enumerate" :
49+ client .sssd .domain ["enumerate" ] = "True"
4450 client .sssd .nss ["fallback_homedir" ] = "/home/nohome-%u"
4551 client .sssd .restart (clean = True )
4652
@@ -54,8 +60,9 @@ def test_nss__fallback_homedir(client: Client, provider: GenericProvider):
5460
5561@pytest .mark .importance ("high" )
5662@pytest .mark .topology (KnownTopologyGroup .AnyProvider )
63+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
5764@pytest .mark .preferred_topology (KnownTopology .LDAP )
58- def test_nss__filter_users (client : Client , provider : LDAP ):
65+ def test_nss__filter_users (client : Client , provider : LDAP , config : str ):
5966 """
6067 :title: Test filtering of users and groups with 'filter_users' and 'filter_groups'
6168 :description:
@@ -84,6 +91,8 @@ def test_nss__filter_users(client: Client, provider: LDAP):
8491 g1 = provider .group ("group1" ).add ()
8592 g1 .add_member (u1 ).add_member (u2 ).add_member (u3 )
8693
94+ if config == "enumerate" :
95+ client .sssd .domain ["enumerate" ] = "True"
8796 client .sssd .start ()
8897 u2_ent = client .tools .getent .passwd (u2 .name )
8998 assert u2_ent is not None , f"Failed to get user { u2 .name } !"
@@ -110,8 +119,9 @@ def test_nss__filter_users(client: Client, provider: LDAP):
110119@pytest .mark .importance ("high" )
111120@pytest .mark .topology (KnownTopology .LDAP )
112121@pytest .mark .topology (KnownTopology .IPA )
122+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
113123@pytest .mark .preferred_topology (KnownTopology .LDAP )
114- def test_nss__filter_groups (client : Client , provider : GenericProvider ):
124+ def test_nss__filter_groups (client : Client , provider : GenericProvider , config : str ):
115125 """
116126 :title: Test filtering of users and groups with 'filter_users' and 'filter_groups'
117127 :description:
@@ -143,6 +153,8 @@ def test_nss__filter_groups(client: Client, provider: GenericProvider):
143153 g2 .add_member (u1 ).add_member (u2 )
144154 g3 .add_member (u1 ).add_member (u2 )
145155
156+ if config == "enumerate" :
157+ client .sssd .domain ["enumerate" ] = "True"
146158 client .sssd .start ()
147159 g1_ent = client .tools .getent .group (g1 .name )
148160 assert g1_ent is not None , f"Can't get { g1 .name } entry!"
@@ -170,8 +182,9 @@ def test_nss__filter_groups(client: Client, provider: GenericProvider):
170182
171183@pytest .mark .importance ("medium" )
172184@pytest .mark .topology (KnownTopologyGroup .AnyProvider )
185+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
173186@pytest .mark .preferred_topology (KnownTopology .LDAP )
174- def test_nss__override_shell (client : Client , provider : GenericProvider ):
187+ def test_nss__override_shell (client : Client , provider : GenericProvider , config : str ):
175188 """
176189 :title: Test the effect of the "override_shell" option
177190 :description:
@@ -203,6 +216,8 @@ def test_nss__override_shell(client: Client, provider: GenericProvider):
203216 for user in users :
204217 provider .user (user ["name" ]).add (shell = user ["shell" ])
205218
219+ if config == "enumerate" :
220+ client .sssd .domain ["enumerate" ] = "True"
206221 client .sssd .nss ["override_shell" ] = "/bin/B"
207222 client .sssd .start ()
208223
@@ -213,9 +228,10 @@ def test_nss__override_shell(client: Client, provider: GenericProvider):
213228
214229
215230@pytest .mark .importance ("medium" )
231+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
216232@pytest .mark .topology (KnownTopologyGroup .AnyProvider )
217233@pytest .mark .preferred_topology (KnownTopology .LDAP )
218- def test_nss__shell_fallback (client : Client , provider : GenericProvider ):
234+ def test_nss__shell_fallback (client : Client , provider : GenericProvider , config : str ):
219235 """
220236 :title: Test the effect of the "shell_fallback" option
221237 :description:
@@ -248,6 +264,8 @@ def test_nss__shell_fallback(client: Client, provider: GenericProvider):
248264
249265 # /bin/sh should be in /etc/shells by default in the container.
250266 # /bin/not_installed should not be.
267+ if config == "enumerate" :
268+ client .sssd .domain ["enumerate" ] = "True"
251269 client .sssd .nss ["shell_fallback" ] = "/bin/fallback"
252270 client .sssd .nss ["allowed_shells" ] = "/bin/not_installed"
253271 client .sssd .start ()
@@ -259,9 +277,10 @@ def test_nss__shell_fallback(client: Client, provider: GenericProvider):
259277
260278
261279@pytest .mark .importance ("medium" )
280+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
262281@pytest .mark .topology (KnownTopologyGroup .AnyProvider )
263282@pytest .mark .preferred_topology (KnownTopology .LDAP )
264- def test_nss__default_shell (client : Client , provider : GenericProvider ):
283+ def test_nss__default_shell (client : Client , provider : GenericProvider , config : str ):
265284 """
266285 :title: Test the effect of the "default_shell" option
267286 :description:
@@ -292,6 +311,8 @@ def test_nss__default_shell(client: Client, provider: GenericProvider):
292311 for user in users :
293312 provider .user (user ["name" ]).add (shell = user ["shell" ])
294313
314+ if config == "enumerate" :
315+ client .sssd .domain ["enumerate" ] = "True"
295316 client .sssd .nss ["default_shell" ] = "/bin/default"
296317 client .sssd .nss ["allowed_shells" ] = "/bin/default, /bin/not_installed"
297318 client .sssd .nss ["shell_fallback" ] = "/bin/fallback"
@@ -304,9 +325,10 @@ def test_nss__default_shell(client: Client, provider: GenericProvider):
304325
305326
306327@pytest .mark .importance ("medium" )
328+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
307329@pytest .mark .topology (KnownTopologyGroup .AnyProvider )
308330@pytest .mark .preferred_topology (KnownTopology .LDAP )
309- def test_nss__vetoed_shells (client : Client , provider : GenericProvider ):
331+ def test_nss__vetoed_shells (client : Client , provider : GenericProvider , config : str ):
310332 """
311333 :title: Test the effect of the "vetoed_shells" option
312334 :description:
@@ -337,6 +359,8 @@ def test_nss__vetoed_shells(client: Client, provider: GenericProvider):
337359 for user in users :
338360 provider .user (user ["name" ]).add (shell = user ["shell" ])
339361
362+ if config == "enumerate" :
363+ client .sssd .domain ["enumerate" ] = "True"
340364 client .sssd .nss ["default_shell" ] = "/bin/default"
341365 client .sssd .nss ["vetoed_shells" ] = "/bin/vetoed"
342366 client .sssd .nss ["shell_fallback" ] = "/bin/fallback"
@@ -350,7 +374,8 @@ def test_nss__vetoed_shells(client: Client, provider: GenericProvider):
350374
351375@pytest .mark .importance ("high" )
352376@pytest .mark .topology (KnownTopology .LDAP )
353- def test_nss__filters_cached (client : Client , provider : GenericProvider ):
377+ @pytest .mark .parametrize ("config" , ["enumerate" , "default" ])
378+ def test_nss__filters_cached (client : Client , provider : GenericProvider , config : str ):
354379 """
355380 :title: Test caching of filtered users and groups
356381 :description:
@@ -391,6 +416,8 @@ def test_nss__filters_cached(client: Client, provider: GenericProvider):
391416 provider .group ("root" ).add (gid = 2004 ) # should be filtered
392417 provider .group ("zerogid" ).add (gid = 0 ) # should be filtered
393418
419+ if config == "enumerate" :
420+ client .sssd .domain ["enumerate" ] = "True"
394421 client .sssd .nss ["filter_users" ] = "user2"
395422 client .sssd .nss ["filter_groups" ] = "group2"
396423 client .sssd .nss ["entry_negative_timeout" ] = "2"
@@ -413,7 +440,9 @@ def test_nss__filters_cached(client: Client, provider: GenericProvider):
413440
414441
415442@pytest .mark .topology (KnownTopologyGroup .AnyProvider )
416- @pytest .mark .preferred_topology (KnownTopology .LDAP )
443+ @pytest .mark .preferred_topology (
444+ KnownTopology .LDAP ,
445+ )
417446@pytest .mark .parametrize (
418447 "home_key" ,
419448 ["user" , "uid" , "fqn" , "domain" , "first_char" , "upn" , "default" , "lowercase" , "substring" , "literal%" ],
0 commit comments