URL: https://github.com/freeipa/freeipa/pull/210 Author: gkaihorodova Title: #210: Tests: Stage User Tracker implementation Action: synchronized
To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/210/head:pr210 git checkout pr210
From af0eabb8582513275240cd625e7d3f307fa0ebe0 Mon Sep 17 00:00:00 2001 From: Ganna Kaihorodova <gkaih...@redhat.com> Date: Wed, 2 Nov 2016 15:02:30 +0100 Subject: [PATCH 1/2] Tests: Stage User Tracker implementation Fix provide possibility of creation stage user with minimal values, with uid not specified and check for non-empty unicode string for attributes requested in init method https://fedorahosted.org/freeipa/ticket/6448 --- ipatests/test_xmlrpc/tracker/stageuser_plugin.py | 36 ++++++++++++++++++------ 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/ipatests/test_xmlrpc/tracker/stageuser_plugin.py b/ipatests/test_xmlrpc/tracker/stageuser_plugin.py index 82d7e06..07c1a25 100644 --- a/ipatests/test_xmlrpc/tracker/stageuser_plugin.py +++ b/ipatests/test_xmlrpc/tracker/stageuser_plugin.py @@ -61,23 +61,43 @@ class StageUserTracker(Tracker): find_keys = retrieve_keys - {u'has_keytab', u'has_password'} find_all_keys = retrieve_all_keys - {u'has_keytab', u'has_password'} - def __init__(self, name, givenname, sn, **kwargs): + def __init__(self, name=None, givenname=None, sn=None, **kwargs): + """ Check for non-empty unicode string for the required attributes + in the init method """ + + if not (isinstance(givenname, six.string_types) and givenname): + raise ValueError("Invalid first name provided: %r" % givenname) + if not (isinstance(sn, six.string_types) and sn): + raise ValueError("Invalid second name provided: %r" % sn) + super(StageUserTracker, self).__init__(default_version=None) - self.uid = name - self.givenname = givenname - self.sn = sn + self.uid = unicode(name) + self.givenname = unicode(givenname) + self.sn = unicode(sn) self.dn = DN( ('uid', self.uid), api.env.container_stageuser, api.env.basedn) self.kwargs = kwargs def make_create_command(self, options=None): - """ Make function that creates a staged user using stageuser-add """ + """ Make function that creates a staged user using stageuser-add + with all set of attributes and with minimal values, + where uid is not specified """ + if options is not None: self.kwargs = options - return self.make_command('stageuser_add', self.uid, - givenname=self.givenname, - sn=self.sn, **self.kwargs) + if self.uid is not None: + return self.make_command( + 'stageuser_add', self.uid, + givenname=self.givenname, + sn=self.sn, **self.kwargs + ) + else: + return self.make_command( + 'stageuser_add', + givenname=self.givenname, + sn=self.sn, **self.kwargs + ) def make_delete_command(self): """ Make function that deletes a staged user using stageuser-del """ From e6c30ddbef30a7a914cb8e41f9f0335304322abe Mon Sep 17 00:00:00 2001 From: Ganna Kaihorodova <gkaih...@redhat.com> Date: Mon, 12 Dec 2016 14:11:52 +0100 Subject: [PATCH 2/2] Stage User: Test to create stage user with minimal values Test to create stage user with minimal values, where uid is not specified https://fedorahosted.org/freeipa/ticket/6448 --- ipatests/test_xmlrpc/test_stageuser_plugin.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ipatests/test_xmlrpc/test_stageuser_plugin.py b/ipatests/test_xmlrpc/test_stageuser_plugin.py index 4a859e8..95cb26a 100644 --- a/ipatests/test_xmlrpc/test_stageuser_plugin.py +++ b/ipatests/test_xmlrpc/test_stageuser_plugin.py @@ -85,6 +85,11 @@ def stageduser(request): return tracker.make_fixture(request) +@pytest.fixture(scope='class') +def stageduser_min(request): + tracker = StageUserTracker(givenname=u'stagedmin', sn=u'usermin') + return tracker.make_fixture(request) + @pytest.fixture(scope='class', params=options_ok, ids=options_ids) def stageduser2(request): tracker = StageUserTracker(u'suser2', u'staged', u'user', **request.param) @@ -191,6 +196,12 @@ def test_activate_nonexistent(self, stageduser): @pytest.mark.tier1 class TestStagedUser(XMLRPC_test): + def test_create_with_min_values(self, stageduser_min): + """ Create user with uid not specified """ + stageduser_min.ensure_missing() + command = stageduser_min.make_create_command() + command() + def test_create_duplicate(self, stageduser): stageduser.ensure_exists() command = stageduser.make_create_command()
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code