summaryrefslogtreecommitdiffstats
path: root/ipatests/test_xmlrpc/tracker
diff options
context:
space:
mode:
authorFilip Skola <fskola@redhat.com>2016-01-18 13:56:44 +0100
committerTomas Babej <tbabej@redhat.com>2016-03-01 13:50:32 +0100
commit007c360f85151caab7d608cc0a4eb1916b18eba9 (patch)
tree7e99d177c56a62c495a10e2bdbb316ece685fe25 /ipatests/test_xmlrpc/tracker
parent276d16775a4ce8af5d39ca8a7bf5bcd638df343f (diff)
downloadfreeipa-007c360f85151caab7d608cc0a4eb1916b18eba9.tar.gz
freeipa-007c360f85151caab7d608cc0a4eb1916b18eba9.tar.xz
freeipa-007c360f85151caab7d608cc0a4eb1916b18eba9.zip
Refactor test_sudocmd_plugin
Reviewed-By: Ales 'alich' Marecek <amarecek@redhat.com>
Diffstat (limited to 'ipatests/test_xmlrpc/tracker')
-rw-r--r--ipatests/test_xmlrpc/tracker/sudocmd_plugin.py113
1 files changed, 113 insertions, 0 deletions
diff --git a/ipatests/test_xmlrpc/tracker/sudocmd_plugin.py b/ipatests/test_xmlrpc/tracker/sudocmd_plugin.py
new file mode 100644
index 000000000..eb72e4ba2
--- /dev/null
+++ b/ipatests/test_xmlrpc/tracker/sudocmd_plugin.py
@@ -0,0 +1,113 @@
+#
+# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
+#
+
+from ipatests.test_xmlrpc import objectclasses
+from ipatests.test_xmlrpc.xmlrpc_test import fuzzy_uuid, fuzzy_sudocmddn
+
+from ipatests.test_xmlrpc.tracker.base import Tracker
+from ipatests.util import assert_deepequal
+
+
+class SudoCmdTracker(Tracker):
+ """ Class for tracking sudo commands """
+ retrieve_keys = {u'dn', u'sudocmd', u'description',
+ u'memberof_sudocmdgroup'}
+ retrieve_all_keys = retrieve_keys | {u'ipauniqueid', u'objectclass'}
+
+ create_keys = retrieve_all_keys
+ update_keys = retrieve_keys - {u'dn'}
+
+ def __init__(self, command, description="Test sudo command"):
+ super(SudoCmdTracker, self).__init__(default_version=None)
+ self.cmd = command
+ self.dn = fuzzy_sudocmddn
+ self.description = description
+
+ @property
+ def name(self):
+ """ Property holding the name of the entry in LDAP """
+ return self.cmd
+
+ def make_create_command(self, force=True):
+ """ Make function that creates a sudocmd using 'sudocmd-add' """
+ return self.make_command('sudocmd_add', self.cmd,
+ description=self.description)
+
+ def make_delete_command(self):
+ """ Make function that deletes a sudocmd using 'sudocmd-del' """
+ return self.make_command('sudocmd_del', self.cmd)
+
+ def make_retrieve_command(self, all=False, raw=False):
+ """ Make function that retrieves a sudocmd using 'sudocmd-show' """
+ return self.make_command('sudocmd_show', self.cmd, all=all)
+
+ def make_find_command(self, *args, **kwargs):
+ """ Make function that searches for a sudocmd using 'sudocmd-find' """
+ return self.make_command('sudocmd_find', *args, **kwargs)
+
+ def make_update_command(self, updates):
+ """ Make function that updates a sudocmd using 'sudocmd-mod' """
+ return self.make_command('sudocmd_mod', self.cmd, **updates)
+
+ def track_create(self):
+ """ Updates expected state for sudocmd creation"""
+ self.attrs = dict(
+ dn=self.dn,
+ sudocmd=[self.cmd],
+ description=[self.description],
+ ipauniqueid=[fuzzy_uuid],
+ objectclass=objectclasses.sudocmd,
+ )
+ self.exists = True
+
+ def check_create(self, result):
+ """ Checks 'sudocmd_add' command result """
+ assert_deepequal(dict(
+ value=self.cmd,
+ summary=u'Added Sudo Command "%s"' % self.cmd,
+ result=self.filter_attrs(self.create_keys)
+ ), result)
+
+ def check_delete(self, result):
+ """ Checks 'sudocmd_del' command result """
+ assert_deepequal(dict(
+ value=[self.cmd],
+ summary=u'Deleted Sudo Command "%s"' % self.cmd,
+ result=dict(failed=[]),
+ ), result)
+
+ def check_retrieve(self, result, all=False, raw=False):
+ """ Checks 'sudocmd_show' command result """
+ if all:
+ expected = self.filter_attrs(self.retrieve_all_keys)
+ else:
+ expected = self.filter_attrs(self.retrieve_keys)
+
+ assert_deepequal(dict(
+ value=self.cmd,
+ summary=None,
+ result=expected
+ ), result)
+
+ def check_find(self, result, all=False, raw=False):
+ """ Checks 'sudocmd_find' command result """
+ if all:
+ expected = self.filter_attrs(self.retrieve_all_keys)
+ else:
+ expected = self.filter_attrs(self.retrieve_keys)
+
+ assert_deepequal(dict(
+ count=1,
+ truncated=False,
+ summary=u'1 Sudo Command matched',
+ result=[expected],
+ ), result)
+
+ def check_update(self, result, extra_keys={}):
+ """ Checks 'sudocmd_mod' command result """
+ assert_deepequal(dict(
+ value=self.cmd,
+ summary=u'Modified Sudo Command "%s"' % self.cmd,
+ result=self.filter_attrs(self.update_keys | set(extra_keys))
+ ), result)