diff options
author | Tomas Babej <tbabej@redhat.com> | 2015-10-12 18:32:24 +0200 |
---|---|---|
committer | Tomas Babej <tbabej@redhat.com> | 2015-10-14 16:11:25 +0200 |
commit | eaeb40328cf80f615684ffc692b9416e1c08d544 (patch) | |
tree | 7ae4f01779e91e846b6ed558a1e881961bc10537 /ipatests/test_xmlrpc | |
parent | 4c2276f7ec9a049ea9088030b23badecd88c73e4 (diff) | |
download | freeipa-eaeb40328cf80f615684ffc692b9416e1c08d544.tar.gz freeipa-eaeb40328cf80f615684ffc692b9416e1c08d544.tar.xz freeipa-eaeb40328cf80f615684ffc692b9416e1c08d544.zip |
tests: Add tests for idoverride object integrity
As far as IPA objects are concerned, ID overrides are supposed
to be removed when the respective user/group is removed.
Adds a couple of tests to ensure this behaviour is covered.
https://fedorahosted.org/freeipa/ticket/5322
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
Diffstat (limited to 'ipatests/test_xmlrpc')
-rw-r--r-- | ipatests/test_xmlrpc/test_idviews_plugin.py | 175 |
1 files changed, 173 insertions, 2 deletions
diff --git a/ipatests/test_xmlrpc/test_idviews_plugin.py b/ipatests/test_xmlrpc/test_idviews_plugin.py index f1a46978b..287555881 100644 --- a/ipatests/test_xmlrpc/test_idviews_plugin.py +++ b/ipatests/test_xmlrpc/test_idviews_plugin.py @@ -52,6 +52,9 @@ hostgroup2 = u'hostgroup2' idoverrideuser1 = u'testuser' idoverridegroup1 = u'testgroup' +idoverrideuser_removed = u'testuser-removed' +idoverridegroup_removed = u'testgroup-removed' + nonexistentuser = u'nonexistentuser' nonexistentgroup = u'nonexistentgroup' @@ -126,8 +129,8 @@ class test_idviews(Declarative): ('host_del', [host1, host2, host3, host4], {'continue': True}), ('hostgroup_del', [hostgroup1, hostgroup2], {'continue': True}), ('idview_del', [idview1], {'continue': True}), - ('user_del', [idoverrideuser1], {'continue': True}), - ('group_del', [idoverridegroup1], {'continue': True}), + ('user_del', [idoverrideuser1, idoverrideuser_removed], {'continue': True}), + ('group_del', [idoverridegroup1, idoverridegroup_removed], {'continue': True}), ] tests = [ @@ -777,6 +780,7 @@ class test_idviews(Declarative): ), ), + # Test ID View applying dict( @@ -1479,4 +1483,171 @@ class test_idviews(Declarative): ), ), ), + + # Test integrity of idoverride objects agains their references + + dict( + desc='Create ID View "%s"' % idview1, + command=( + 'idview_add', + [idview1], + {} + ), + expected=dict( + value=idview1, + summary=u'Added ID View "%s"' % idview1, + result=dict( + dn=get_idview_dn(idview1), + objectclass=objectclasses.idview, + cn=[idview1] + ) + ), + ), + + dict( + desc='Create "%s"' % idoverrideuser_removed, + command=( + 'user_add', + [idoverrideuser_removed], + dict( + givenname=u'Removed', + sn=u'User', + ) + ), + expected=dict( + value=idoverrideuser_removed, + summary=u'Added user "%s"' % idoverrideuser_removed, + result=get_user_result( + idoverrideuser_removed, + u'Removed', + u'User', + 'add', + objectclass=add_oc( + objectclasses.user, + u'ipantuserattrs' + ) + ), + ), + ), + + dict( + desc='Create group %r' % idoverridegroup_removed, + command=( + 'group_add', + [idoverridegroup_removed], + dict(description=u'Removed group') + ), + expected=dict( + value=idoverridegroup_removed, + summary=u'Added group "%s"' % idoverridegroup_removed, + result=dict( + cn=[idoverridegroup_removed], + description=[u'Removed group'], + objectclass=objectclasses.posixgroup, + ipauniqueid=[fuzzy_uuid], + gidnumber=[fuzzy_digits], + dn=get_group_dn(idoverridegroup_removed), + ), + ), + ), + + dict( + desc='Create User ID override "%s"' % idoverrideuser_removed, + command=( + 'idoverrideuser_add', + [idview1, idoverrideuser_removed], + dict(description=u'description', + homedirectory=u'/home/newhome', + uid=u'newlogin', + uidnumber=12345, + ipasshpubkey=sshpubkey, + ) + ), + expected=dict( + value=idoverrideuser_removed, + summary=u'Added User ID override "%s"' % idoverrideuser_removed, + result=dict( + dn=get_override_dn(idview1, idoverrideuser_removed), + objectclass=objectclasses.idoverrideuser, + ipaanchoruuid=[idoverrideuser_removed], + ipaoriginaluid=[idoverrideuser_removed], + description=[u'description'], + homedirectory=[u'/home/newhome'], + uidnumber=[u'12345'], + uid=[u'newlogin'], + ipasshpubkey=[sshpubkey], + sshpubkeyfp=[sshpubkeyfp], + ) + ), + ), + + dict( + desc='Create Group ID override "%s"' % idoverridegroup_removed, + command=( + 'idoverridegroup_add', + [idview1, idoverridegroup_removed], + dict(description=u'description') + ), + expected=dict( + value=idoverridegroup_removed, + summary=u'Added Group ID override "%s"' % idoverridegroup_removed, + result=dict( + dn=get_override_dn(idview1, idoverridegroup_removed), + objectclass=objectclasses.idoverridegroup, + ipaanchoruuid=[idoverridegroup_removed], + description=[u'description'], + ) + ), + ), + + dict( + desc='Delete "%s"' % idoverrideuser_removed, + command=('user_del', [idoverrideuser_removed], {}), + expected=dict( + result=dict(failed=[]), + summary=u'Deleted user "%s"' % idoverrideuser_removed, + value=[idoverrideuser_removed], + ), + ), + + dict( + desc='Delete "%s"' % idoverridegroup_removed, + command=('group_del', [idoverridegroup_removed], {}), + expected=dict( + result=dict(failed=[]), + summary=u'Deleted group "%s"' % idoverridegroup_removed, + value=[idoverridegroup_removed], + ), + ), + + dict( + desc='Make sure idoverrideuser objects have been cleaned', + command=( + 'idoverrideuser_find', + [idview1], + dict(), + ), + expected=dict( + result=[], + summary=u'0 User ID overrides matched', + count=0, + truncated=False, + ), + ), + + dict( + desc='Make sure idoverridegroup objects have been cleaned', + command=( + 'idoverridegroup_find', + [idview1], + dict(), + ), + expected=dict( + result=[], + summary=u'0 Group ID overrides matched', + count=0, + truncated=False, + ), + ), + ] |