mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2026-07-30 08:07:56 -05:00
Adding descriptive IDs to stageuser tests
Adding descriptive IDs to parametrized stageuser test for better identification of test cases. Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
This commit is contained in:
committed by
Martin Basti
parent
e130d35687
commit
a66a2c5160
@@ -15,6 +15,7 @@ import pytest
|
||||
|
||||
import six
|
||||
|
||||
from collections import OrderedDict
|
||||
from ipalib import api, errors
|
||||
|
||||
from ipatests.test_xmlrpc import objectclasses
|
||||
@@ -53,35 +54,40 @@ sshpubkey = (u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGAX3xAeLeaJggwTqMjxNwa6X'
|
||||
sshpubkeyfp = (u'13:67:6B:BF:4E:A2:05:8E:AE:25:8B:A1:31:DE:6F:1B '
|
||||
'public key test (ssh-rsa)')
|
||||
|
||||
options_ok = [
|
||||
{u'cn': u'name'},
|
||||
{u'initials': u'in'},
|
||||
{u'displayname': u'display'},
|
||||
{u'homedirectory': u'/home/homedir'},
|
||||
{u'gecos': u'gecos'},
|
||||
{u'loginshell': u'/bin/shell'},
|
||||
{u'mail': u'email@email.email'},
|
||||
{u'title': u'newbie'},
|
||||
{u'krbprincipalname': u'kerberos@%s' % api.env.realm},
|
||||
{u'krbprincipalname': u'KERBEROS@%s' % api.env.realm},
|
||||
{u'street': u'first street'},
|
||||
{u'l': u'prague'},
|
||||
{u'st': u'czech'},
|
||||
{u'postalcode': u'12345'},
|
||||
{u'telephonenumber': u'123456789'},
|
||||
{u'facsimiletelephonenumber': u'123456789'},
|
||||
{u'mobile': u'123456789'},
|
||||
{u'pager': u'123456789'},
|
||||
{u'ou': u'engineering'},
|
||||
{u'carlicense': u'abc1234'},
|
||||
{u'ipasshpubkey': sshpubkey},
|
||||
{u'manager': u'auser1'},
|
||||
{u'uidnumber': uid},
|
||||
{u'gidnumber': gid},
|
||||
{u'uidnumber': uid, u'gidnumber': gid},
|
||||
{u'userpassword': u'Secret123'},
|
||||
{u'random': True},
|
||||
]
|
||||
options_def = OrderedDict([
|
||||
('full name', {u'cn': u'name'}),
|
||||
('initials', {u'initials': u'in'}),
|
||||
('display name', {u'displayname': u'display'}),
|
||||
('home directory', {u'homedirectory': u'/home/homedir'}),
|
||||
('GECOS', {u'gecos': u'gecos'}),
|
||||
('shell', {u'loginshell': u'/bin/shell'}),
|
||||
('email address', {u'mail': u'email@email.email'}),
|
||||
('job title', {u'title': u'newbie'}),
|
||||
('kerberos principal', {
|
||||
u'krbprincipalname': u'kerberos@%s' % api.env.realm}),
|
||||
('uppercase kerberos principal', {
|
||||
u'krbprincipalname': u'KERBEROS@%s' % api.env.realm}),
|
||||
('street address', {u'street': u'first street'}),
|
||||
('city', {u'l': u'prague'}),
|
||||
('state', {u'st': u'czech'}),
|
||||
('zip code', {u'postalcode': u'12345'}),
|
||||
('telephone number', {u'telephonenumber': u'123456789'}),
|
||||
('fax number', {u'facsimiletelephonenumber': u'123456789'}),
|
||||
('mobile tel. number', {u'mobile': u'123456789'}),
|
||||
('pager number', {u'pager': u'123456789'}),
|
||||
('organizational unit', {u'ou': u'engineering'}),
|
||||
('car license', {u'carlicense': u'abc1234'}),
|
||||
('SSH key', {u'ipasshpubkey': sshpubkey}),
|
||||
('manager', {u'manager': u'auser1'}),
|
||||
('user ID number', {u'uidnumber': uid}),
|
||||
('group ID number', {u'gidnumber': gid}),
|
||||
('UID and GID numbers', {u'uidnumber': uid, u'gidnumber': gid}),
|
||||
('password', {u'userpassword': u'Secret123'}),
|
||||
('random password', {u'random': True}),
|
||||
])
|
||||
|
||||
options_ok = options_def.values()
|
||||
options_ids = options_def.keys()
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
@@ -90,12 +96,18 @@ def stageduser(request):
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class', params=options_ok)
|
||||
@pytest.fixture(scope='class', params=options_ok, ids=options_ids)
|
||||
def stageduser2(request):
|
||||
tracker = StageUserTracker(u'suser2', u'staged', u'user', **request.param)
|
||||
return tracker.make_fixture_activate(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user_activated(request):
|
||||
tracker = UserTracker(u'suser2', u'staged', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def stageduser3(request):
|
||||
tracker = StageUserTracker(name=u'suser3', givenname=u'staged', sn=u'user')
|
||||
@@ -220,7 +232,7 @@ class TestStagedUser(XMLRPC_test):
|
||||
def test_showall_stageduser(self, stageduser):
|
||||
stageduser.retrieve(all=True)
|
||||
|
||||
def test_create_attr(self, stageduser2, user, user6):
|
||||
def test_create_with_attr(self, stageduser2, user, user_activated):
|
||||
""" Tests creating a user with various valid attributes listed
|
||||
in 'options_ok' list"""
|
||||
# create staged user with specified parameters
|
||||
@@ -233,14 +245,14 @@ class TestStagedUser(XMLRPC_test):
|
||||
|
||||
# activate user, verify that specified values were preserved
|
||||
# after activation
|
||||
user6.ensure_missing()
|
||||
user6 = UserTracker(
|
||||
user_activated.ensure_missing()
|
||||
user_activated = UserTracker(
|
||||
stageduser2.uid, stageduser2.givenname,
|
||||
stageduser2.sn, **stageduser2.kwargs)
|
||||
user6.create_from_staged(stageduser2)
|
||||
user_activated.create_from_staged(stageduser2)
|
||||
command = stageduser2.make_activate_command()
|
||||
result = command()
|
||||
user6.check_activate(result)
|
||||
user_activated.check_activate(result)
|
||||
|
||||
# verify the staged user does not exist after activation
|
||||
command = stageduser2.make_retrieve_command()
|
||||
@@ -248,7 +260,7 @@ class TestStagedUser(XMLRPC_test):
|
||||
reason=u'%s: stage user not found' % stageduser2.uid)):
|
||||
command()
|
||||
|
||||
user6.delete()
|
||||
user_activated.delete()
|
||||
|
||||
def test_delete_stageduser(self, stageduser):
|
||||
stageduser.delete()
|
||||
|
||||
@@ -128,7 +128,7 @@ class StageUserTracker(Tracker):
|
||||
(self.kwargs[key].split('@'))[0].lower(),
|
||||
(self.kwargs[key].split('@'))[1])]
|
||||
elif key == u'manager':
|
||||
self.attrs[key] = [unicode(get_user_dn(self.kwargs[key]))]
|
||||
self.attrs[key] = [self.kwargs[key]]
|
||||
elif key == u'ipasshpubkey':
|
||||
self.attrs[u'sshpubkeyfp'] = [sshpubkeyfp]
|
||||
self.attrs[key] = [self.kwargs[key]]
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
from ipalib import api, errors
|
||||
from ipapython.dn import DN
|
||||
|
||||
from ipatests.util import assert_deepequal, get_group_dn
|
||||
from ipatests.util import assert_deepequal, get_group_dn, get_user_dn
|
||||
from ipatests.test_xmlrpc import objectclasses
|
||||
from ipatests.test_xmlrpc.xmlrpc_test import fuzzy_digits, fuzzy_uuid, raises_exact
|
||||
from ipatests.test_xmlrpc.xmlrpc_test import (
|
||||
fuzzy_digits, fuzzy_uuid, raises_exact)
|
||||
from ipatests.test_xmlrpc.tracker.base import Tracker
|
||||
|
||||
|
||||
@@ -258,6 +259,10 @@ class UserTracker(Tracker):
|
||||
summary=u'Stage user %s activated' % self.uid,
|
||||
result=self.filter_attrs(self.activate_keys))
|
||||
|
||||
if 'manager' in expected['result']:
|
||||
expected['result']['manager'] = [
|
||||
unicode(get_user_dn(expected['result']['manager'][0]))]
|
||||
|
||||
# work around to eliminate inconsistency in returned objectclass
|
||||
# (case sensitive assertion)
|
||||
expected['result']['objectclass'] = [item.lower() for item in
|
||||
|
||||
Reference in New Issue
Block a user