summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorOleg Fayans <ofayans@redhat.com>2016-11-16 12:57:49 +0100
committerMartin Babinsky <mbabinsk@redhat.com>2016-11-29 18:30:44 +0100
commitccd3677b50eab2223ddf1e1b6682c20fc695ad24 (patch)
tree9bbd5c400b421242aea973668a7c9b38004e48a1 /ipatests
parent266b9d9c6c9b9dec10b8a70382445fa2f800dd69 (diff)
downloadfreeipa-ccd3677b50eab2223ddf1e1b6682c20fc695ad24.tar.gz
freeipa-ccd3677b50eab2223ddf1e1b6682c20fc695ad24.tar.xz
freeipa-ccd3677b50eab2223ddf1e1b6682c20fc695ad24.zip
Created idview tracker
Needed for basic certs in idoverrides tests https://fedorahosted.org/freeipa/ticket/6412 Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: Milan Kubik <mkubik@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_xmlrpc/tracker/idview_plugin.py116
1 files changed, 116 insertions, 0 deletions
diff --git a/ipatests/test_xmlrpc/tracker/idview_plugin.py b/ipatests/test_xmlrpc/tracker/idview_plugin.py
new file mode 100644
index 000000000..e7bb39b6e
--- /dev/null
+++ b/ipatests/test_xmlrpc/tracker/idview_plugin.py
@@ -0,0 +1,116 @@
+#
+# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
+#
+
+from ipalib import api
+from ipapython.dn import DN
+from ipatests.test_xmlrpc.tracker.base import Tracker
+from ipatests.util import assert_deepequal
+from ipatests.test_xmlrpc import objectclasses
+
+import six
+
+if six.PY3:
+ unicode = str
+
+
+class IdviewTracker(Tracker):
+ """Class for idview tests"""
+
+ retrieve_keys = {
+ u'cn'
+ }
+
+ retrieve_all_keys = retrieve_keys | {
+ u'description', u'objectclass', u'dn'
+ }
+
+ create_keys = retrieve_all_keys
+ find_all_keys = retrieve_all_keys
+
+ def del_cert_from_idoverrideuser(self, username, cert):
+ result = api.Command.idoverrideuser_remove_cert(
+ self.cn, username, usercertificate=cert
+ )
+ return dict(
+ usercertificate=result['result'].get('usercertificate', []),
+ value=result.get('value'),
+ summary=result.get('summary')
+ )
+
+ def add_cert_to_idoverrideuser(self, username, cert):
+ result = api.Command.idoverrideuser_add_cert(
+ self.cn, username, usercertificate=cert
+ )
+ return dict(
+ usercertificate=result['result'].get('usercertificate', []),
+ value=result.get('value'),
+ summary=result.get('summary')
+ )
+
+ def __init__(self, cn, **kwargs):
+ super(IdviewTracker, self).__init__(default_version=None)
+ self.cn = cn
+ self.dn = DN(('cn', cn), api.env.container_views, api.env.basedn)
+ self.kwargs = kwargs
+
+ def make_create_command(self):
+ return self.make_command(
+ 'idview_add', self.cn, **self.kwargs
+ )
+
+ def make_delete_command(self):
+ return self.make_command(
+ 'idview_del', self.cn, **self.kwargs
+ )
+
+ def make_retrieve_command(self, all=False, raw=False):
+ """ Make function that retrieves a idview using idview-show """
+ return self.make_command('idview_show', self.cn, all=all)
+
+ def make_find_command(self, *args, **kwargs):
+ """ Make function that finds idview using idview-find """
+ return self.make_command('idview_find', *args, **kwargs)
+
+ def make_update_command(self, updates):
+ """ Make function that updates idview using idview-mod """
+ return self.make_command('idview_mod', self.cn, **updates)
+
+ def track_create(self):
+ self.attrs = dict(
+ cn=(self.cn,),
+ dn=unicode(self.dn),
+ idoverrideusers=[],
+ objectclass=objectclasses.idview
+ )
+ if 'description' in self.kwargs:
+ self.attrs['description'] = self.kwargs['description']
+ self.exists = True
+
+ def make_add_idoverrideuser_command(self, username, options=None):
+ options = options or {}
+ """ Make function that adds a member to a group """
+ return self.make_command('idoverrideuser_add', self.cn, username,
+ **options)
+
+ def idoverrideuser_add(self, user):
+ command = self.make_add_idoverrideuser_command(user.name)
+ result = command()
+ self.attrs['idoverrideusers'].append(result['value'])
+ self.check_idoverrideuser_add(result, user)
+
+ def check_create(self, result, extra_keys=()):
+ """ Check 'user-add' command result """
+ expected = self.filter_attrs(self.create_keys | set(extra_keys))
+ assert_deepequal(dict(
+ summary=u'Added ID View "%s"' % self.cn,
+ result=self.filter_attrs(expected),
+ value=self.cn
+ ), result)
+
+ def check_idoverrideuser_add(self, result, user):
+ """ Checks 'group_add_member' command result """
+ assert_deepequal(
+ u'Added User ID override "%s"' % user.name,
+ result['summary']
+ )