On (19/09/16 10:06), Lukas Slebodnik wrote:
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
Actually, there are trivial pep8 errors
src/tests/intg/test_netgroup.py:181:1: E302 expected 2 blank lines, found 1
src/tests/intg/test_netgroup.py:185:1: E302 expected 2 blank lines, found 1
src/tests/intg/test_netgroup.py:470:1: E302 expected 2 blank lines, found 1
LS