On (12/09/16 00:25), Jakub Hrozek wrote:
From fd71b7ed7c588cc22402573b9877020234949e22 Mon Sep 17 00:00:00
2001
From: Jakub Hrozek <jhrozek(a)redhat.com>
Date: Fri, 9 Sep 2016 12:23:04 +0200
Subject: [PATCH 3/3] TESTS: Test offline netgroups resolution
---
src/tests/intg/test_netgroup.py | 35 +++++++++++++++++++++++++++++------
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/src/tests/intg/test_netgroup.py b/src/tests/intg/test_netgroup.py
index b99476126844e35d5dbc1793077720b4020c2fb7..1d00f0ecdc912dc7ecc23a818a79828d2b2727e6
100644
--- a/src/tests/intg/test_netgroup.py
+++ b/src/tests/intg/test_netgroup.py
@@ -104,6 +104,7 @@ def format_basic_conf(ldap_conn, schema):
[sssd]
domains = LDAP
services = nss
+ disable_netlink = true
[domain/LDAP]
{schema_conf}
@@ -148,11 +149,16 @@ def create_sssd_process():
raise Exception("sssd start failed")
+def get_sssd_pid():
+ pid_file = open(config.PIDFILE_PATH, "r")
+ pid = int(pid_file.read())
+ return pid
+
+
def cleanup_sssd_process():
"""Stop the SSSD process and remove its state"""
try:
- pid_file = open(config.PIDFILE_PATH, "r")
- pid = int(pid_file.read())
+ pid = get_sssd_pid()
os.kill(pid, signal.SIGTERM)
while True:
try:
@@ -172,6 +178,9 @@ def create_sssd_cleanup(request):
"""Add teardown for stopping SSSD and removing its
state"""
request.addfinalizer(cleanup_sssd_process)
+def simulate_offline():
+ pid = get_sssd_pid()
+ os.kill(pid, signal.SIGUSR1)
def create_sssd_fixture(request):
"""Start SSSD and add teardown for stopping it and removing its
state"""
@@ -351,7 +360,7 @@ def test_remove_step_by_step(remove_step_by_step, ldap_conn):
ent_list.remove(ent_list[0])
if subprocess.call(["sss_cache", "-N"]) != 0:
- raise Exception("sssd_cache failed")
+ raise Exception("sss_cache failed")
res, _, netgroups = sssd_netgroup.get_sssd_netgroups("rm_empty_netgroup1")
assert res == sssd_netgroup.NssReturnCode.NOTFOUND
@@ -366,7 +375,7 @@ def test_remove_step_by_step(remove_step_by_step, ldap_conn):
ent_list.remove(ent_list[0])
if subprocess.call(["sss_cache", "-N"]) != 0:
- raise Exception("sssd_cache failed")
+ raise Exception("sss_cache failed")
res, _, netgroups = sssd_netgroup.get_sssd_netgroups("rm_empty_netgroup1")
assert res == sssd_netgroup.NssReturnCode.NOTFOUND
@@ -422,7 +431,7 @@ def test_removing_nested_netgroups(removing_nested_netgroups,
ldap_conn):
ldap_conn.modify_s(netgrp_dn, ldif)
if subprocess.call(["sss_cache", "-N"]) != 0:
- raise Exception("sssd_cache failed")
+ raise Exception("sss_cache failed")
res, _, netgroups = sssd_netgroup.get_sssd_netgroups("t2841_netgroup1")
assert res == sssd_netgroup.NssReturnCode.SUCCESS
@@ -444,7 +453,7 @@ def test_removing_nested_netgroups(removing_nested_netgroups,
ldap_conn):
ldap_conn.modify_s(netgrp_dn, ldif)
if subprocess.call(["sss_cache", "-N"]) != 0:
- raise Exception("sssd_cache failed")
+ raise Exception("sss_cache failed")
Above changes are unrelated
to the test.
If you decide to touch the code then it would be better
to use subprocess.check_call
res, _, netgroups = sssd_netgroup.get_sssd_netgroups("t2841_netgroup1")
assert res == sssd_netgroup.NssReturnCode.SUCCESS
@@ -457,3 +466,17 @@ def test_removing_nested_netgroups(removing_nested_netgroups,
ldap_conn):
res, _, netgroups = sssd_netgroup.get_sssd_netgroups("t2841_netgroup3")
assert res == sssd_netgroup.NssReturnCode.SUCCESS
assert netgroups == []
+
+def test_offline_netgroups(add_tripled_netgroup):
+ res, _, netgrps = sssd_netgroup.get_sssd_netgroups("tripled_netgroup")
+ assert res == sssd_netgroup.NssReturnCode.SUCCESS
+ assert netgrps == [("host", "user", "domain")]
+
+ if subprocess.call(["sss_cache", "-N"]) != 0:
+ raise Exception("sss_cache failed")
+
+ simulate_offline()
+
+ res, _, netgrps = sssd_netgroup.get_sssd_netgroups("tripled_netgroup")
+ assert res == sssd_netgroup.NssReturnCode.SUCCESS
+ assert netgrps == [("host", "user", "domain")]
otherwise LGTM
LS