Re: [SSSD] [PATCH] intg: Add more LDAP tests
On (06/10/15 11:27), Jakub Hrozek wrote: >On Wed, Sep 30, 2015 at 06:15:52PM +0300, Nikolai Kondrashov wrote: >> Hi everyone, >> >> Here is a patch set fixing some things in integration tests and adding more >> LDAP tests: > >(Not a full review, just adding my ideas and impressions) > >I read these patches when I tried to add tests for the failing POSIX >check. That didn't work out, but at least I have a better idea about the >integration tests now :-) > >Most importantly, the current tests are largely using enumeration. That >not wrong and we want this codepath to be tested, but it's not the >default of SSSD, so we want the non-enumeration also. > >I also wonder if instead of bool-like parameter that says if we're using >rfc2307 or rfc2307bis we should have a more generic 'schema' parameter. > >Both are in some way here: > > https://fedorapeople.org/cgit/jhrozek/public_git/sssd.git/commit/?h=intg_test=568a0090c664d61e0491c2c2e4f8a3b68189a816 > >Most of the (not well formatted) patch is the schema change, you can >also see ldap_schema=ad being added. The test_broken_posix_in_ad() >function also shows a test without enumeration -- I think we want tests >for adding/removing a user/group/membership with rfc2307(bis) schema >along these lines as well. > >> >> * Adding/removing a user/group/membership with rfc2307(bis) schema. >> * Filtering users/groups with rfc2307(bis) schema. >> * The effect of override_homedir option. >> * The effect of fallback_homedir option. >> * The effect of override_shell option. >> * The effect of shell_fallback option. >> * The effect of default_shell option. >> * The effect of vetoed_shells option. >> >> These are pretty basic, but I think they're good for the start. >> Suggestions for more tests are welcome :) >> >> NOTE: These still break test_memory_cache.py as seen in the attached log >> file. >> We need to figure out why and do something with it. Otherwise, the >> tests work fine. >> >> Nick > >> From 8eb90565998f43fdc6b9ea3564527620c862f7fb Mon Sep 17 00:00:00 2001 >> From: Nikolai Kondrashov>> Date: Tue, 29 Sep 2015 20:13:04 +0300 >> Subject: [PATCH 2/7] intg: Remove _rfc2307 from function names >> >> Remove "_rfc2307" from integration test function names for brevity. >> --- >> src/tests/intg/ldap_test.py | 12 +++ >> src/tests/intg/test_memory_cache.py | 70 >> ++--- >> 2 files changed, 41 insertions(+), 41 deletions(-) >> >> diff --git a/src/tests/intg/ldap_test.py b/src/tests/intg/ldap_test.py >> index 0287a28..e359ab4 100644 >> --- a/src/tests/intg/ldap_test.py >> +++ b/src/tests/intg/ldap_test.py >> @@ -104,7 +104,7 @@ def create_sssd_fixture(request): >> >> >> @pytest.fixture >> -def sanity_rfc2307(request, ldap_conn): >> +def sanity(request, ldap_conn): >> ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) >> ent_list.add_user("user1", 1001, 2001) >> ent_list.add_user("user2", 1002, 2002) >> @@ -149,7 +149,7 @@ def sanity_rfc2307(request, ldap_conn): >> >> >> @pytest.fixture >> -def simple_rfc2307(request, ldap_conn): >> +def simple(request, ldap_conn): >> ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) >> ent_list.add_user('usr001', 181818, 181818) >> ent_list.add_group("group1", 181818) >> @@ -180,7 +180,7 @@ def simple_rfc2307(request, ldap_conn): >> >> >> @pytest.fixture >> -def sanity_rfc2307_bis(request, ldap_conn): >> +def sanity_bis(request, ldap_conn): >> ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) >> ent_list.add_user("user1", 1001, 2001) >> ent_list.add_user("user2", 1002, 2002) >> @@ -238,14 +238,14 @@ def sanity_rfc2307_bis(request, ldap_conn): >> return None >> >> >> -def test_regression_ticket2163(ldap_conn, simple_rfc2307): >> +def test_regression_ticket2163(ldap_conn, simple): >> ent.assert_passwd_by_name( >> 'usr\\001', >> dict(name='usr\\001', passwd='*', uid=181818, gid=181818, >> gecos='181818', shell='/bin/bash')) >> >> >> -def test_sanity_rfc2307(ldap_conn, sanity_rfc2307): >> +def test_sanity(ldap_conn, sanity): >> passwd_pattern = ent.contains_only( >> dict(name='user1', passwd='*', uid=1001, gid=2001, gecos='1001', >> dir='/home/user1', shell='/bin/bash'), >> dict(name='user2', passwd='*', uid=1002, gid=2002, gecos='1002', >> dir='/home/user2', shell='/bin/bash'), >> @@ -272,7 +272,7 @@ def test_sanity_rfc2307(ldap_conn, sanity_rfc2307): >> grp.getgrgid(1) >> >> >> -def test_sanity_rfc2307_bis(ldap_conn, sanity_rfc2307_bis): >> +def test_sanity_bis(ldap_conn, sanity_bis): >> passwd_pattern = ent.contains_only( >> dict(name='user1', passwd='*', uid=1001, gid=2001, gecos='1001', >> dir='/home/user1', shell='/bin/bash'), >> dict(name='user2', passwd='*', uid=1002, gid=2002, gecos='1002', >> dir='/home/user2',
Re: [SSSD] [PATCH] intg: Add more LDAP tests
On 10/07/2015 10:51 AM, Lukas Slebodnik wrote: On (06/10/15 11:27), Jakub Hrozek wrote: On Wed, Sep 30, 2015 at 06:15:52PM +0300, Nikolai Kondrashov wrote: Remove "_rfc2307" from integration test function names for brevity. Please do not remove sanity_rfc2307 from this test. It was added intentionaly. So it's clear from the name of fixture which ldap schema is used. If you want to remove it from ldap_test.py feel free to do it but please do not chage it in test_memory_cache.py Sure, no problem. Moreover, based on conversation with Jakub, I think I'll need to keep them everywhere, one way or another. BTW: there are introduced new pep8 warning by your patches: 0007-intg-Add-more-LDAP-tests.patch In attachement :-) Some of warnings neen't be caught by pep8 --diff (blank lines after function .. Right, I forgot to run it again. Thank you for checking. And now back to failing test memory cache. It works for me if I change the order of tests (mv ldap_test_.py test_xldap.py) So your test had to introduce an issue in last patch. Yeah, my tests are obviously interfering with your tests. I hoped you might suggest the reason, since you know them and SSSD better, but I can dig it myself. It also constantly fails for me; so it can be related. FAILURES __ test_add_remove_user __ Now, this is interesting. Is this the only test that fails? If not, which tests fail? Is the failure pattern constant? Which environment were you running them in? Was it my unchanged patch set, or was that after you switched the order? Thank you. Nick ___ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
Re: [SSSD] [PATCH] intg: Add more LDAP tests
On 10/06/2015 12:27 PM, Jakub Hrozek wrote: On Wed, Sep 30, 2015 at 06:15:52PM +0300, Nikolai Kondrashov wrote: Hi everyone, Here is a patch set fixing some things in integration tests and adding more LDAP tests: (Not a full review, just adding my ideas and impressions) I read these patches when I tried to add tests for the failing POSIX check. That didn't work out, but at least I have a better idea about the integration tests now :-) Was the problem with the integration test framework or with something else? If it's the former, can I offer my help? Most importantly, the current tests are largely using enumeration. That not wrong and we want this codepath to be tested, but it's not the default of SSSD, so we want the non-enumeration also. Alright, I'll try to use the py.test fixture parameters for this. It's a cumbersome facility, but perhaps we can use it. If that fails, I'll try something else. I worry a bit about the doubled test runtime, though. Can we have some tests running only with either disabled or enabled enumeration? I also wonder if instead of bool-like parameter that says if we're using rfc2307 or rfc2307bis we should have a more generic 'schema' parameter. Both are in some way here: https://fedorapeople.org/cgit/jhrozek/public_git/sssd.git/commit/?h=intg_test=568a0090c664d61e0491c2c2e4f8a3b68189a816 Most of the (not well formatted) patch is the schema change, you can also see ldap_schema=ad being added. The test_broken_posix_in_ad() function also shows a test without enumeration -- I think we want tests for adding/removing a user/group/membership with rfc2307(bis) schema along these lines as well. Riiight, I completely forgot about the other schemas. Sure, we'll need something more than a boolean. However, how about we define a couple constant string variables and supply them instead of literal strings to reduce the likelihood of typos? Nick ___ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
Re: [SSSD] [PATCH] intg: Add more LDAP tests
On Wed, Oct 07, 2015 at 04:02:32PM +0300, Nikolai Kondrashov wrote: > On 10/06/2015 12:27 PM, Jakub Hrozek wrote: > >On Wed, Sep 30, 2015 at 06:15:52PM +0300, Nikolai Kondrashov wrote: > >>Hi everyone, > >> > >>Here is a patch set fixing some things in integration tests and adding more > >>LDAP tests: > > > >(Not a full review, just adding my ideas and impressions) > > > >I read these patches when I tried to add tests for the failing POSIX > >check. That didn't work out, but at least I have a better idea about the > >integration tests now :-) > > Was the problem with the integration test framework or with something else? > If it's the former, can I offer my help? No, it was that while the code that triggered the error was in the generic LDAP provider, the bug itself manifested only in AD provider..so we'd need to wrap Samba to really test the bug. > > >Most importantly, the current tests are largely using enumeration. That > >not wrong and we want this codepath to be tested, but it's not the > >default of SSSD, so we want the non-enumeration also. > > Alright, I'll try to use the py.test fixture parameters for this. It's a > cumbersome facility, but perhaps we can use it. If that fails, I'll try > something else. > > I worry a bit about the doubled test runtime, though. Can we have some tests > running only with either disabled or enabled enumeration? Maybe..in general I think non-enumeration are more important so if the rigorous/essential parameters also apply to which integration tests we run, then I would prefer non-enumeration tests. > > >I also wonder if instead of bool-like parameter that says if we're using > >rfc2307 or rfc2307bis we should have a more generic 'schema' parameter. > > > >Both are in some way here: > > > > https://fedorapeople.org/cgit/jhrozek/public_git/sssd.git/commit/?h=intg_test=568a0090c664d61e0491c2c2e4f8a3b68189a816 > > > >Most of the (not well formatted) patch is the schema change, you can > >also see ldap_schema=ad being added. The test_broken_posix_in_ad() > >function also shows a test without enumeration -- I think we want tests > >for adding/removing a user/group/membership with rfc2307(bis) schema > >along these lines as well. > > Riiight, I completely forgot about the other schemas. Sure, we'll need > something more than a boolean. However, how about we define a couple constant > string variables and supply them instead of literal strings to reduce the > likelihood of typos? Yes, that's even better. Would you prefer if I sent such patch (atop your patches) ? ___ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
Re: [SSSD] [PATCH] intg: Add more LDAP tests
On Wed, Sep 30, 2015 at 06:15:52PM +0300, Nikolai Kondrashov wrote: > Hi everyone, > > Here is a patch set fixing some things in integration tests and adding more > LDAP tests: (Not a full review, just adding my ideas and impressions) I read these patches when I tried to add tests for the failing POSIX check. That didn't work out, but at least I have a better idea about the integration tests now :-) Most importantly, the current tests are largely using enumeration. That not wrong and we want this codepath to be tested, but it's not the default of SSSD, so we want the non-enumeration also. I also wonder if instead of bool-like parameter that says if we're using rfc2307 or rfc2307bis we should have a more generic 'schema' parameter. Both are in some way here: https://fedorapeople.org/cgit/jhrozek/public_git/sssd.git/commit/?h=intg_test=568a0090c664d61e0491c2c2e4f8a3b68189a816 Most of the (not well formatted) patch is the schema change, you can also see ldap_schema=ad being added. The test_broken_posix_in_ad() function also shows a test without enumeration -- I think we want tests for adding/removing a user/group/membership with rfc2307(bis) schema along these lines as well. > > * Adding/removing a user/group/membership with rfc2307(bis) schema. > * Filtering users/groups with rfc2307(bis) schema. > * The effect of override_homedir option. > * The effect of fallback_homedir option. > * The effect of override_shell option. > * The effect of shell_fallback option. > * The effect of default_shell option. > * The effect of vetoed_shells option. > > These are pretty basic, but I think they're good for the start. > Suggestions for more tests are welcome :) > > NOTE: These still break test_memory_cache.py as seen in the attached log file. > We need to figure out why and do something with it. Otherwise, the > tests work fine. > > Nick > From d09a103901a6f86873f9510152c600a062e255ed Mon Sep 17 00:00:00 2001 > From: Nikolai Kondrashov> Date: Tue, 29 Sep 2015 20:00:14 +0300 > Subject: [PATCH 1/7] intg: Get base DN from LDAP connection object > > Don't use the global LDAP_BASE_DN in integration tests and fixtures, but > instead take it from the LDAP connection object (ldap_conn) passed to > them explicitly. This makes the tests and fixtures a bit more modular. > --- > src/tests/intg/ldap_test.py | 8 > src/tests/intg/test_memory_cache.py | 2 +- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/src/tests/intg/ldap_test.py b/src/tests/intg/ldap_test.py > index ea114dc..0287a28 100644 > --- a/src/tests/intg/ldap_test.py > +++ b/src/tests/intg/ldap_test.py > @@ -105,7 +105,7 @@ def create_sssd_fixture(request): > > @pytest.fixture > def sanity_rfc2307(request, ldap_conn): > -ent_list = ldap_ent.List(LDAP_BASE_DN) > +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) > ent_list.add_user("user1", 1001, 2001) > ent_list.add_user("user2", 1002, 2002) > ent_list.add_user("user3", 1003, 2003) > @@ -150,7 +150,7 @@ def sanity_rfc2307(request, ldap_conn): > > @pytest.fixture > def simple_rfc2307(request, ldap_conn): > -ent_list = ldap_ent.List(LDAP_BASE_DN) > +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) > ent_list.add_user('usr001', 181818, 181818) > ent_list.add_group("group1", 181818) > > @@ -181,7 +181,7 @@ def simple_rfc2307(request, ldap_conn): > > @pytest.fixture > def sanity_rfc2307_bis(request, ldap_conn): > -ent_list = ldap_ent.List(LDAP_BASE_DN) > +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) > ent_list.add_user("user1", 1001, 2001) > ent_list.add_user("user2", 1002, 2002) > ent_list.add_user("user3", 1003, 2003) > @@ -309,7 +309,7 @@ def test_sanity_rfc2307_bis(ldap_conn, > sanity_rfc2307_bis): > > @pytest.fixture > def refresh_after_cleanup_task(request, ldap_conn): > -ent_list = ldap_ent.List(LDAP_BASE_DN) > +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) > ent_list.add_user("user1", 1001, 2001) > > ent_list.add_group_bis("group1", 2001, ["user1"]) > diff --git a/src/tests/intg/test_memory_cache.py > b/src/tests/intg/test_memory_cache.py > index 1f4ccb0..76d85fd 100644 > --- a/src/tests/intg/test_memory_cache.py > +++ b/src/tests/intg/test_memory_cache.py > @@ -109,7 +109,7 @@ def create_sssd_fixture(request): > > > def load_data_to_ldap(request, ldap_conn): > -ent_list = ldap_ent.List(LDAP_BASE_DN) > +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) > ent_list.add_user("user1", 1001, 2001) > ent_list.add_user("user2", 1002, 2002) > ent_list.add_user("user3", 1003, 2003) > -- > 2.5.1 > > From 8eb90565998f43fdc6b9ea3564527620c862f7fb Mon Sep 17 00:00:00 2001 > From: Nikolai Kondrashov > Date: Tue, 29 Sep 2015 20:13:04 +0300 > Subject: [PATCH 2/7] intg: Remove _rfc2307 from function names > >
Re: [SSSD] [PATCH] intg: Add more LDAP tests
On 09/30/2015 06:15 PM, Nikolai Kondrashov wrote: NOTE: These still break test_memory_cache.py as seen in the attached log file. Here's a fresher log, with the correct line numbers: http://sssd-ci.duckdns.org/logs/job/28/19/rhel7/ci-build-debug/ci-make-intgcheck.log Nick ___ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
Re: [SSSD] [PATCH] intg: Add more LDAP tests
On 09/30/2015 06:15 PM, Nikolai Kondrashov wrote: -create_conf_fixture(request, conf) +create_conf_fixture(request, format_basic_conf(ldap_conn, False, True)) Actually, I wanted to do one more thing with this and forgot: name the "bis" and "enum" parameters explicitly on each invocation to make it clear what's happening. E.g.: create_conf_fixture(request, format_basic_conf(ldap_conn, bis=False, enum=True)) Anyone in favor of/against this? Nick ___ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
[SSSD] [PATCH] intg: Add more LDAP tests
Hi everyone, Here is a patch set fixing some things in integration tests and adding more LDAP tests: * Adding/removing a user/group/membership with rfc2307(bis) schema. * Filtering users/groups with rfc2307(bis) schema. * The effect of override_homedir option. * The effect of fallback_homedir option. * The effect of override_shell option. * The effect of shell_fallback option. * The effect of default_shell option. * The effect of vetoed_shells option. These are pretty basic, but I think they're good for the start. Suggestions for more tests are welcome :) NOTE: These still break test_memory_cache.py as seen in the attached log file. We need to figure out why and do something with it. Otherwise, the tests work fine. Nick >From d09a103901a6f86873f9510152c600a062e255ed Mon Sep 17 00:00:00 2001 From: Nikolai KondrashovDate: Tue, 29 Sep 2015 20:00:14 +0300 Subject: [PATCH 1/7] intg: Get base DN from LDAP connection object Don't use the global LDAP_BASE_DN in integration tests and fixtures, but instead take it from the LDAP connection object (ldap_conn) passed to them explicitly. This makes the tests and fixtures a bit more modular. --- src/tests/intg/ldap_test.py | 8 src/tests/intg/test_memory_cache.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tests/intg/ldap_test.py b/src/tests/intg/ldap_test.py index ea114dc..0287a28 100644 --- a/src/tests/intg/ldap_test.py +++ b/src/tests/intg/ldap_test.py @@ -105,7 +105,7 @@ def create_sssd_fixture(request): @pytest.fixture def sanity_rfc2307(request, ldap_conn): -ent_list = ldap_ent.List(LDAP_BASE_DN) +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user("user1", 1001, 2001) ent_list.add_user("user2", 1002, 2002) ent_list.add_user("user3", 1003, 2003) @@ -150,7 +150,7 @@ def sanity_rfc2307(request, ldap_conn): @pytest.fixture def simple_rfc2307(request, ldap_conn): -ent_list = ldap_ent.List(LDAP_BASE_DN) +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user('usr001', 181818, 181818) ent_list.add_group("group1", 181818) @@ -181,7 +181,7 @@ def simple_rfc2307(request, ldap_conn): @pytest.fixture def sanity_rfc2307_bis(request, ldap_conn): -ent_list = ldap_ent.List(LDAP_BASE_DN) +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user("user1", 1001, 2001) ent_list.add_user("user2", 1002, 2002) ent_list.add_user("user3", 1003, 2003) @@ -309,7 +309,7 @@ def test_sanity_rfc2307_bis(ldap_conn, sanity_rfc2307_bis): @pytest.fixture def refresh_after_cleanup_task(request, ldap_conn): -ent_list = ldap_ent.List(LDAP_BASE_DN) +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user("user1", 1001, 2001) ent_list.add_group_bis("group1", 2001, ["user1"]) diff --git a/src/tests/intg/test_memory_cache.py b/src/tests/intg/test_memory_cache.py index 1f4ccb0..76d85fd 100644 --- a/src/tests/intg/test_memory_cache.py +++ b/src/tests/intg/test_memory_cache.py @@ -109,7 +109,7 @@ def create_sssd_fixture(request): def load_data_to_ldap(request, ldap_conn): -ent_list = ldap_ent.List(LDAP_BASE_DN) +ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user("user1", 1001, 2001) ent_list.add_user("user2", 1002, 2002) ent_list.add_user("user3", 1003, 2003) -- 2.5.1 >From 8eb90565998f43fdc6b9ea3564527620c862f7fb Mon Sep 17 00:00:00 2001 From: Nikolai Kondrashov Date: Tue, 29 Sep 2015 20:13:04 +0300 Subject: [PATCH 2/7] intg: Remove _rfc2307 from function names Remove "_rfc2307" from integration test function names for brevity. --- src/tests/intg/ldap_test.py | 12 +++ src/tests/intg/test_memory_cache.py | 70 ++--- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/tests/intg/ldap_test.py b/src/tests/intg/ldap_test.py index 0287a28..e359ab4 100644 --- a/src/tests/intg/ldap_test.py +++ b/src/tests/intg/ldap_test.py @@ -104,7 +104,7 @@ def create_sssd_fixture(request): @pytest.fixture -def sanity_rfc2307(request, ldap_conn): +def sanity(request, ldap_conn): ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user("user1", 1001, 2001) ent_list.add_user("user2", 1002, 2002) @@ -149,7 +149,7 @@ def sanity_rfc2307(request, ldap_conn): @pytest.fixture -def simple_rfc2307(request, ldap_conn): +def simple(request, ldap_conn): ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user('usr001', 181818, 181818) ent_list.add_group("group1", 181818) @@ -180,7 +180,7 @@ def simple_rfc2307(request, ldap_conn): @pytest.fixture -def sanity_rfc2307_bis(request, ldap_conn): +def sanity_bis(request, ldap_conn): ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) ent_list.add_user("user1", 1001, 2001)