On 08/31/2015 06:53 PM, Michal Židek wrote:
>
> 0001-Makefile.am-Add-AM_CFLAGS-for-libsss_ldap_common.patch
>
>
> From b563b44a99c91c75523ea11e18cb7f7552750817 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Michal=20=C5=BDidek?=<mzidek(a)redhat.com>
> Date: Mon, 31 Aug 2015 18:21:44 +0200
> Subject: [PATCH 1/5] Makefile.am: Add AM_CFLAGS for libsss_ldap_common
>
> Add missing AM_CFLAGS to libsss_ldap_common_la_CFLAGS.
> ---
> Makefile.am | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Makefile.am b/Makefile.am
> index f153ab0..8e8da31 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -2835,6 +2835,7 @@ libsss_ldap_common_la_SOURCES = \
> src/util/sss_ldap.c \
> $(NULL)
> libsss_ldap_common_la_CFLAGS = \
> + $(AM_CFLAGS) \
> $(KRB5_CFLAGS) \
> $(NULL)
> libsss_ldap_common_la_LIBADD = \
> -- 2.1.0
Should we also amend:
* libsss_cert_la_CFLAGS
* libsss_crypt_la_CFLAGS
* libsss_ad_common_la_CFLAGS
* libsss_krb5_common_la_CFLAGS
?
[snip]
>
> 0003-cleanup-task-Expire-all-memberof-targets-when-removi.patch
>
>
> From 627d15d8ec9b636116debf4516404dca625ab0b4 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Michal=20=C5=BDidek?=<mzidek(a)redhat.com>
> Date: Wed, 29 Jul 2015 17:18:06 +0200
> Subject: [PATCH 3/5] cleanup task: Expire all memberof targets when removing
> user
>
> Ticket:
>
https://fedorahosted.org/sssd/ticket/2676
>
> When user removed from cache during cleanup task, mark all
s/user removed/user is removed/?
[snip]
>
> 0005-intg-Fix-some-PEP-8-violations.patch
>
>
> From fae54334dfe4bf8220f9c4f5820e638b575ce8ec Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Michal=20=C5=BDidek?=<mzidek(a)redhat.com>
> Date: Mon, 31 Aug 2015 18:47:57 +0200
> Subject: [PATCH 5/5] intg: Fix some PEP 8 violations
>
> ---
> src/tests/intg/ds.py | 1 +
> src/tests/intg/ds_openldap.py | 2 ++
> src/tests/intg/ent.py | 38 ++++++++++++++++++++++++++++++++++++++
> src/tests/intg/ent_test.py | 21 +++++++++++++++++++++
> src/tests/intg/ldap_ent.py | 4 ++++
> src/tests/intg/ldap_test.py | 9 +++++++++
> src/tests/intg/util.py | 3 +++
> 7 files changed, 78 insertions(+)
>
> diff --git a/src/tests/intg/ds.py b/src/tests/intg/ds.py
> index a871902..fe93384 100644
> --- a/src/tests/intg/ds.py
> +++ b/src/tests/intg/ds.py
> @@ -19,6 +19,7 @@
>
> import ldap
>
> +
> class DS:
> """Abstract directory server instance."""
>
> diff --git a/src/tests/intg/ds_openldap.py b/src/tests/intg/ds_openldap.py
> index 42a2c90..2ece0cf 100644
> --- a/src/tests/intg/ds_openldap.py
> +++ b/src/tests/intg/ds_openldap.py
> @@ -30,6 +30,7 @@ import sys
> from util import *
> from ds import DS
>
> +
> def hash_password(password):
> """Generate userPassword value for a
password."""
> salt = os.urandom(4)
> @@ -37,6 +38,7 @@ def hash_password(password):
> hash.update(salt)
> return "{SSHA}" + base64.standard_b64encode(hash.digest() + salt)
>
> +
> class DSOpenLDAP(DS):
> """OpenLDAP directory server instance."""
>
> diff --git a/src/tests/intg/ent.py b/src/tests/intg/ent.py
> index b3c4121..0ba7758 100644
> --- a/src/tests/intg/ent.py
> +++ b/src/tests/intg/ent.py
> @@ -25,6 +25,7 @@ _PASSWD_LIST_DESC = {None: ("user", {})}
> _GROUP_DESC = {"mem": ("member list", {None:
("member", {})})}
> _GROUP_LIST_DESC = {None: ("group", _GROUP_DESC)}
>
> +
> def _get_desc(desc_map, key):
> """
> Get an item description from a container description map.
> @@ -46,6 +47,7 @@ def _get_desc(desc_map, key):
> else:
> return (pformat(key), {})
>
> +
> def _diff(ent, pattern, desc_map={}):
> """
> Describe difference between an entry and a pattern.
> @@ -166,6 +168,7 @@ def _diff(ent, pattern, desc_map={}):
>
> return None
>
> +
> def contains_only(*args):
> """
> Produce a pattern matching all list items against arguments.
> @@ -173,6 +176,7 @@ def contains_only(*args):
> """
> return list(args)
>
> +
> def contains(*args):
> """
> Produce a pattern matching a subset of list items against arguments.
> @@ -180,6 +184,7 @@ def contains(*args):
> """
> return args
>
> +
> def _convert_passwd(passwd):
> """
> Convert a passwd entry returned by pwd module to an entry dictionary.
> @@ -194,14 +199,17 @@ def _convert_passwd(passwd):
> shell = passwd.pw_shell
> )
>
> +
> def get_passwd_by_name(name):
> """Get a passwd database entry by name."""
> return _convert_passwd(pwd.getpwnam(name))
>
> +
> def get_passwd_by_uid(uid):
> """Get a passwd database entry by UID."""
> return _convert_passwd(pwd.getpwuid(uid))
>
> +
> def assert_passwd_by_name(name, pattern):
> """Assert a passwd entry, retrieved by name, matches a
pattern."""
> try:
> @@ -211,6 +219,7 @@ def assert_passwd_by_name(name, pattern):
> d = _diff(ent, pattern)
> assert not d, d
>
> +
> def assert_passwd_by_uid(uid, pattern):
> """Assert a passwd entry, retrieved by UID, matches a
pattern."""
> try:
> @@ -220,6 +229,7 @@ def assert_passwd_by_uid(uid, pattern):
> d = _diff(ent, pattern)
> assert not d, d
>
> +
> def get_passwd_list():
> """Get passwd database entry list with root user
removed."""
> passwd_list = pwd.getpwall()
> @@ -229,11 +239,13 @@ def get_passwd_list():
> return map(_convert_passwd, passwd_list)
> raise Exception("no root user found")
>
> +
> def assert_passwd_list(pattern):
> """Assert retrieved passwd list matches a
pattern."""
> d = _diff(get_passwd_list(), pattern, _PASSWD_LIST_DESC)
> assert not d, d
>
> +
> def _diff_each_passwd_by_name(pattern_dict):
> """
> Describe difference between each pattern_dict value and a passwd entry
> @@ -245,6 +257,7 @@ def _diff_each_passwd_by_name(pattern_dict):
> return str(err)
> return _diff(ent, pattern_dict, _PASSWD_LIST_DESC)
>
> +
> def _diff_each_passwd_by_uid(pattern_dict):
> """
> Describe difference between each pattern_dict value and a passwd entry
> @@ -256,6 +269,7 @@ def _diff_each_passwd_by_uid(pattern_dict):
> return str(err)
> return _diff(ent, pattern_dict, _PASSWD_LIST_DESC)
>
> +
> def _diff_each_passwd_with_name(pattern_seq):
> """
> Describe difference between each pattern in pattern_seq sequence and a
> @@ -263,6 +277,7 @@ def _diff_each_passwd_with_name(pattern_seq):
> """
> return _diff_each_passwd_by_name(dict((p["name"], p) for p in
pattern_seq))
>
> +
> def _diff_each_passwd_with_uid(pattern_seq):
> """
> Describe difference between each pattern in pattern_seq sequence and a
> @@ -270,6 +285,7 @@ def _diff_each_passwd_with_uid(pattern_seq):
> """
> return _diff_each_passwd_by_uid(dict((p["uid"], p) for p in
pattern_seq))
>
> +
> def assert_each_passwd_by_name(pattern_dict):
> """
> Assert each pattern_dict value matches a passwd entry retrieved by
> @@ -278,6 +294,7 @@ def assert_each_passwd_by_name(pattern_dict):
> d = _diff_each_passwd_by_name(pattern_dict)
> assert not d, d
>
> +
> def assert_each_passwd_by_uid(pattern_dict):
> """
> Assert each pattern_dict value matches a passwd entry retrieved by
> @@ -286,6 +303,7 @@ def assert_each_passwd_by_uid(pattern_dict):
> d = _diff_each_passwd_by_uid(pattern_dict)
> assert not d, d
>
> +
> def assert_each_passwd_with_name(pattern_seq):
> """
> Assert each pattern in pattern_seq sequence matches a passwd entry
> @@ -294,6 +312,7 @@ def assert_each_passwd_with_name(pattern_seq):
> d = _diff_each_passwd_with_name(pattern_seq)
> assert not d, d
>
> +
> def assert_each_passwd_with_uid(pattern_seq):
> """
> Assert each pattern in pattern_seq sequence matches a passwd entry
> @@ -302,6 +321,7 @@ def assert_each_passwd_with_uid(pattern_seq):
> d = _diff_each_passwd_with_uid(pattern_seq)
> assert not d, d
>
> +
> def _diff_passwd(pattern):
> """
> Describe difference between passwd database and a pattern.
> @@ -318,6 +338,7 @@ def _diff_passwd(pattern):
> return "UID retrieval mismatch: " + d
> return None
>
> +
> def assert_passwd(pattern):
> """
> Assert passwd database matches a pattern.
> @@ -326,6 +347,7 @@ def assert_passwd(pattern):
> d = _diff_passwd(pattern)
> assert not d, d
>
> +
> def _convert_group(group):
> """
> Convert a group entry returned by grp module to an entry dictionary.
> @@ -337,14 +359,17 @@ def _convert_group(group):
> mem = group.gr_mem
> )
>
> +
> def get_group_by_name(name):
> """Get a group database entry by name."""
> return _convert_group(grp.getgrnam(name))
>
> +
> def get_group_by_gid(gid):
> """Get a group database entry by GID."""
> return _convert_group(grp.getgrgid(gid))
>
> +
> def assert_group_by_name(name, pattern):
> """Assert a group entry, retrieved by name, matches a
pattern."""
> try:
> @@ -354,6 +379,7 @@ def assert_group_by_name(name, pattern):
> d = _diff(ent, pattern, _GROUP_DESC)
> assert not d, d
>
> +
> def assert_group_by_gid(gid, pattern):
> """Assert a group entry, retrieved by GID, matches a
pattern."""
> try:
> @@ -363,6 +389,7 @@ def assert_group_by_gid(gid, pattern):
> d = _diff(ent, pattern, _GROUP_DESC)
> assert not d, d
>
> +
> def get_group_list():
> """Get group database entry list with root group
removed."""
> group_list = grp.getgrall()
> @@ -372,11 +399,13 @@ def get_group_list():
> return map(_convert_group, group_list)
> raise Exception("no root group found")
>
> +
> def assert_group_list(pattern):
> """Assert retrieved group list matches a
pattern."""
> d = _diff(get_group_list(), pattern, _GROUP_LIST_DESC)
> assert not d, d
>
> +
> def _diff_each_group_by_name(pattern_dict):
> """
> Describe difference between each pattern_dict value and a group entry
> @@ -388,6 +417,7 @@ def _diff_each_group_by_name(pattern_dict):
> return str(err)
> return _diff(ent, pattern_dict, _GROUP_LIST_DESC)
>
> +
> def _diff_each_group_by_gid(pattern_dict):
> """
> Describe difference between each pattern_dict value and a group entry
> @@ -399,6 +429,7 @@ def _diff_each_group_by_gid(pattern_dict):
> return str(err)
> return _diff(ent, pattern_dict, _GROUP_LIST_DESC)
>
> +
> def _diff_each_group_with_name(pattern_seq):
> """
> Describe difference between each pattern in pattern_seq sequence and a
> @@ -406,6 +437,7 @@ def _diff_each_group_with_name(pattern_seq):
> """
> return _diff_each_group_by_name(dict((p["name"], p) for p in
pattern_seq))
>
> +
> def _diff_each_group_with_gid(pattern_seq):
> """
> Describe difference between each pattern in pattern_seq sequence and a
> @@ -413,6 +445,7 @@ def _diff_each_group_with_gid(pattern_seq):
> """
> return _diff_each_group_by_gid(dict((p["gid"], p) for p in
pattern_seq))
>
> +
> def assert_each_group_by_name(pattern_dict):
> """
> Assert each pattern_dict value matches a group entry retrieved by
> @@ -421,6 +454,7 @@ def assert_each_group_by_name(pattern_dict):
> d = _diff_each_group_by_name(pattern_dict)
> assert not d, d
>
> +
> def assert_each_group_by_gid(pattern_dict):
> """
> Assert each pattern_dict value matches a group entry retrieved by
> @@ -429,6 +463,7 @@ def assert_each_group_by_gid(pattern_dict):
> d = _diff_each_group_by_gid(pattern_dict)
> assert not d, d
>
> +
> def assert_each_group_with_name(pattern_seq):
> """
> Assert each pattern in pattern_seq sequence matches a group entry
> @@ -437,6 +472,7 @@ def assert_each_group_with_name(pattern_seq):
> d = _diff_each_group_with_name(pattern_seq)
> assert not d, d
>
> +
> def assert_each_group_with_gid(pattern_seq):
> """
> Assert each pattern in pattern_seq sequence matches a group entry
> @@ -445,6 +481,7 @@ def assert_each_group_with_gid(pattern_seq):
> d = _diff_each_group_with_gid(pattern_seq)
> assert not d, d
>
> +
> def _diff_group(pattern):
> """
> Describe difference between group database and a pattern.
> @@ -461,6 +498,7 @@ def _diff_group(pattern):
> return "GID retrieval mismatch: " + d
> return None
>
> +
> def assert_group(pattern):
> """
> Assert group database matches a pattern.
> diff --git a/src/tests/intg/ent_test.py b/src/tests/intg/ent_test.py
> index a50e82d..7c044c7 100644
> --- a/src/tests/intg/ent_test.py
> +++ b/src/tests/intg/ent_test.py
> @@ -24,29 +24,34 @@ import pytest
> import ent
> from util import *
>
> +
> def backup_envvar_file(name):
> path = os.environ[name]
> backup_path = path + ".bak"
> shutil.copyfile(path, backup_path)
> return path
>
> +
> def restore_envvar_file(name):
> path = os.environ[name]
> backup_path = path + ".bak"
> os.rename(backup_path, path)
>
> +
> @pytest.fixture(scope="module")
> def passwd_path(request):
> name = "NSS_WRAPPER_PASSWD"
> request.addfinalizer(lambda: restore_envvar_file(name))
> return backup_envvar_file(name)
>
> +
> @pytest.fixture(scope="module")
> def group_path(request):
> name = "NSS_WRAPPER_GROUP"
> request.addfinalizer(lambda: restore_envvar_file(name))
> return backup_envvar_file(name)
>
> +
> USER1 = dict(name="user1", passwd="x", uid=1001, gid=2001,
> gecos="User 1", dir="/home/user1",
shell="/bin/bash")
> USER2 = dict(name="user2", passwd="x", uid=1002, gid=2002,
> @@ -77,6 +82,7 @@ GROUP_LIST = [EMPTY_GROUP,
> GROUP_NAME_DICT = dict((g["name"], g) for g in GROUP_LIST)
> GROUP_GID_DICT = dict((g["gid"], g) for g in GROUP_LIST)
>
> +
> @pytest.fixture(scope="module")
> def users_and_groups(request, passwd_path, group_path):
> passwd_contents = "".join([
> @@ -94,6 +100,7 @@ def users_and_groups(request, passwd_path, group_path):
> with open(group_path, "a") as f:
> f.write(group_contents)
>
> +
> def test_assert_passwd_by_name(users_and_groups):
> ent.assert_passwd_by_name("user1", {})
> ent.assert_passwd_by_name("user1", dict(name="user1",
uid=1001))
> @@ -111,6 +118,7 @@ def test_assert_passwd_by_name(users_and_groups):
> except AssertionError as e:
> assert str(e) == "'name' mismatch: 'user1' !=
'user2'"
>
> +
> def test_assert_passwd_by_uid(users_and_groups):
> ent.assert_passwd_by_uid(1001, {})
> ent.assert_passwd_by_uid(1001, dict(name="user1", uid=1001))
> @@ -146,6 +154,7 @@ def test_assert_passwd_list(users_and_groups):
> assert re.search("expected users not found:", str(e))
> assert not re.search("unexpected users found:", str(e))
>
> +
> def test_assert_each_passwd_by_name(users_and_groups):
> ent.assert_each_passwd_by_name({})
> ent.assert_each_passwd_by_name(dict(user1=USER1))
> @@ -162,6 +171,7 @@ def test_assert_each_passwd_by_name(users_and_groups):
> assert str(e) == \
> "user 'user1' mismatch: 'name' mismatch:
'user2' != 'user1'"
>
> +
> def test_assert_each_passwd_by_uid(users_and_groups):
> ent.assert_each_passwd_by_uid({})
> ent.assert_each_passwd_by_uid({1001:USER1})
> @@ -178,6 +188,7 @@ def test_assert_each_passwd_by_uid(users_and_groups):
> assert str(e) == \
> "user 1001 mismatch: 'uid' mismatch: 1002 !=
1001"
>
> +
> def test_assert_each_passwd_with_name(users_and_groups):
> ent.assert_each_passwd_with_name([])
> ent.assert_each_passwd_with_name([USER1])
> @@ -194,6 +205,7 @@ def test_assert_each_passwd_with_name(users_and_groups):
> assert str(e) == \
> "user 'user1' mismatch: 'uid' mismatch: 1002 !=
1001"
>
> +
> def test_assert_each_passwd_with_uid(users_and_groups):
> ent.assert_each_passwd_with_uid([])
> ent.assert_each_passwd_with_uid([USER1])
> @@ -210,6 +222,7 @@ def test_assert_each_passwd_with_uid(users_and_groups):
> assert str(e) == \
> "user 1001 mismatch: 'name' mismatch: 'user2'
!= 'user1'"
>
> +
> def test_assert_passwd(users_and_groups):
> ent.assert_passwd(ent.contains())
> ent.assert_passwd(ent.contains(USER1))
> @@ -229,6 +242,7 @@ def test_assert_passwd(users_and_groups):
> assert not re.search("expected users not found:", str(e))
> assert re.search("unexpected users found:", str(e))
>
> +
> def test_group_member_matching(users_and_groups):
> ent.assert_group_by_name("empty_group", dict(mem=ent.contains()))
> ent.assert_group_by_name("empty_group",
dict(mem=ent.contains_only()))
> @@ -281,6 +295,7 @@ def test_group_member_matching(users_and_groups):
> assert re.search("unexpected members found:", str(e))
> assert not re.search("expected members not found:", str(e))
>
> +
> def test_assert_group_by_name(users_and_groups):
> ent.assert_group_by_name("group1", {})
> ent.assert_group_by_name("group1", dict(name="group1",
gid=2001))
> @@ -298,6 +313,7 @@ def test_assert_group_by_name(users_and_groups):
> except AssertionError as e:
> assert str(e) == "'name' mismatch: 'group1' !=
'group2'"
>
> +
> def test_assert_group_by_gid(users_and_groups):
> ent.assert_group_by_gid(2001, {})
> ent.assert_group_by_gid(2001, dict(name="group1", gid=2001))
> @@ -333,6 +349,7 @@ def test_assert_group_list(users_and_groups):
> assert re.search("expected groups not found:", str(e))
> assert not re.search("unexpected groups found:", str(e))
>
> +
> def test_assert_each_group_by_name(users_and_groups):
> ent.assert_each_group_by_name({})
> ent.assert_each_group_by_name(dict(group1=GROUP1))
> @@ -349,6 +366,7 @@ def test_assert_each_group_by_name(users_and_groups):
> assert str(e) == "group 'group1' mismatch: " + \
> "'name' mismatch: 'group2' !=
'group1'"
>
> +
> def test_assert_each_group_by_gid(users_and_groups):
> ent.assert_each_group_by_gid({})
> ent.assert_each_group_by_gid({2001:GROUP1})
> @@ -365,6 +383,7 @@ def test_assert_each_group_by_gid(users_and_groups):
> assert str(e) == \
> "group 2001 mismatch: 'gid' mismatch: 2002 !=
2001"
>
> +
> def test_assert_each_group_with_name(users_and_groups):
> ent.assert_each_group_with_name([])
> ent.assert_each_group_with_name([GROUP1])
> @@ -381,6 +400,7 @@ def test_assert_each_group_with_name(users_and_groups):
> assert str(e) == \
> "group 'group1' mismatch: 'gid' mismatch: 2002
!= 2001"
>
> +
> def test_assert_each_group_with_gid(users_and_groups):
> ent.assert_each_group_with_gid([])
> ent.assert_each_group_with_gid([GROUP1])
> @@ -397,6 +417,7 @@ def test_assert_each_group_with_gid(users_and_groups):
> assert str(e) == \
> "group 2001 mismatch: 'name' mismatch: 'group2'
!= 'group1'"
>
> +
> def test_assert_group(users_and_groups):
> ent.assert_group(ent.contains())
> ent.assert_group(ent.contains(GROUP1))
> diff --git a/src/tests/intg/ldap_ent.py b/src/tests/intg/ldap_ent.py
> index ef2d147..30eed9d 100644
> --- a/src/tests/intg/ldap_ent.py
> +++ b/src/tests/intg/ldap_ent.py
> @@ -17,6 +17,7 @@
> # along with this program. If not,
see<http://www.gnu.org/licenses/>.
> #
>
> +
> def user(base_dn, uid, uidNumber, gidNumber):
> """
> Generate an RFC2307(bis) user add-modlist for passing to ldap.add*
> @@ -37,6 +38,7 @@ def user(base_dn, uid, uidNumber, gidNumber):
> ]
> )
>
> +
> def group(base_dn, cn, gidNumber, member_uids=[]):
> """
> Generate an RFC2307 group add-modlist for passing to ldap.add*.
> @@ -50,6 +52,7 @@ def group(base_dn, cn, gidNumber, member_uids=[]):
> attr_list.append(('memberUid', member_uids))
> return ("cn=" + cn + ",ou=Groups," + base_dn, attr_list)
>
> +
> def group_bis(base_dn, cn, gidNumber, member_uids=[], member_gids=[]):
> """
> Generate an RFC2307bis group add-modlist for passing to ldap.add*.
> @@ -75,6 +78,7 @@ def group_bis(base_dn, cn, gidNumber, member_uids=[],
member_gids=[]):
> )
> return ("cn=" + cn + ",ou=Groups," + base_dn, attr_list)
>
> +
> class List(list):
> """LDAP add-modlist list"""
>
> diff --git a/src/tests/intg/ldap_test.py b/src/tests/intg/ldap_test.py
> index b0a4dc6..6bd7f2a 100644
> --- a/src/tests/intg/ldap_test.py
> +++ b/src/tests/intg/ldap_test.py
> @@ -34,6 +34,7 @@ from util import *
>
> LDAP_BASE_DN="dc=example,dc=com"
>
> +
> @pytest.fixture(scope="module")
> def ds_inst(request):
> """LDAP server instance fixture"""
> @@ -48,6 +49,7 @@ def ds_inst(request):
> request.addfinalizer(lambda: ds_inst.teardown())
> return ds_inst
>
> +
> @pytest.fixture(scope="module")
> def ldap_conn(request, ds_inst):
> """LDAP server connection fixture"""
> @@ -56,6 +58,7 @@ def ldap_conn(request, ds_inst):
> request.addfinalizer(lambda: ldap_conn.unbind_s())
> return ldap_conn
>
> +
> def create_ldap_fixture(request, ldap_conn, ent_list):
> """Add LDAP entries and add teardown for removing
them"""
> for entry in ent_list:
> @@ -65,6 +68,7 @@ def create_ldap_fixture(request, ldap_conn, ent_list):
> ldap_conn.delete_s(entry[0])
> request.addfinalizer(teardown)
>
> +
> def create_conf_fixture(request, contents):
> """Generate sssd.conf and add teardown for removing
it"""
> conf = open(config.CONF_PATH, "w")
> @@ -73,6 +77,7 @@ def create_conf_fixture(request, contents):
> os.chmod(config.CONF_PATH, stat.S_IRUSR | stat.S_IWUSR)
> request.addfinalizer(lambda: os.unlink(config.CONF_PATH))
>
> +
> def create_sssd_fixture(request):
> """Start sssd and add teardown for stopping it and removing
state"""
> if subprocess.call(["sssd", "-D", "-f"]) != 0:
> @@ -97,6 +102,7 @@ def create_sssd_fixture(request):
> os.unlink(config.MCACHE_PATH + "/" + path)
> request.addfinalizer(teardown)
>
> +
> @pytest.fixture
> def sanity_rfc2307(request, ldap_conn):
> ent_list = ldap_ent.List(LDAP_BASE_DN)
> @@ -142,6 +148,7 @@ def sanity_rfc2307(request, ldap_conn):
> create_sssd_fixture(request)
> return None
>
> +
> @pytest.fixture
> def sanity_rfc2307_bis(request, ldap_conn):
> ent_list = ldap_ent.List(LDAP_BASE_DN)
> @@ -201,6 +208,7 @@ def sanity_rfc2307_bis(request, ldap_conn):
> create_sssd_fixture(request)
> return None
>
> +
> def test_sanity_rfc2307(ldap_conn, sanity_rfc2307):
> passwd_pattern = ent.contains_only(
> dict(name='user1', passwd='*', uid=1001, gid=2001,
gecos='1001', dir='/home/user1', shell='/bin/bash'),
> @@ -227,6 +235,7 @@ def test_sanity_rfc2307(ldap_conn, sanity_rfc2307):
> with pytest.raises(KeyError):
> grp.getgrgid(1)
>
> +
> def test_sanity_rfc2307_bis(ldap_conn, sanity_rfc2307_bis):
> passwd_pattern = ent.contains_only(
> dict(name='user1', passwd='*', uid=1001, gid=2001,
gecos='1001', dir='/home/user1', shell='/bin/bash'),
> diff --git a/src/tests/intg/util.py b/src/tests/intg/util.py
> index 5dd92b2..6e8f15d 100644
> --- a/src/tests/intg/util.py
> +++ b/src/tests/intg/util.py
> @@ -23,6 +23,7 @@ import subprocess
>
> UNINDENT_RE = re.compile("^ +", re.MULTILINE)
>
> +
> def unindent(text):
> """
> Unindent text by removing at most the number of spaces present in
> @@ -35,6 +36,7 @@ def unindent(text):
> return match.group()[indent_ref[0]:]
> return UNINDENT_RE.sub(replace, text)
>
> +
> def run_shell():
> """
> Execute an interactive shell under "screen", preserving
environment.
> @@ -48,6 +50,7 @@ def run_shell():
> "bash -i"
> ])
>
> +
> def first_dir(*args):
> """Return first argument that points to an existing
directory."""
> for arg in args:
> -- 2.1.0
This patch fixes some of the pep8 warnings (number of issues reported by
pep8 utility changed from 204 to 127).
Should we file a ticket to reduce pep8 warning as much as possible? I
suppose we could even add a test that would fail if new pep8 warning is
introduced, but I'm little worried that it might prove to be too
difficult to write such a test in quality that it will be accepted by
all SSSD developers. What do you think?
I just wanted to add a little consistency to the intgr code (especially
because I felt responsible for this particular one).
I am not against filing such ticket, we should follow PEP 8 where
possible, but the ticket should have low priority.
I also rebased the patches (there was a conflict in the intg tests).
Michal