Skip to content

Commit ac22d53

Browse files
author
Dan Lavu
committed
adding parametrized enumeration enabled tests
1 parent 72a42d5 commit ac22d53

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

src/tests/system/tests/test_nss.py

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,18 @@
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

Comments
 (0)