freeipa/ipatests/test_xmlrpc/tracker/sudocmd_plugin.py
Lenka Doudova a07c4bdd4f Tests: Remove --force options from tracker base class
Removing --force option from tracker base class so it would not be required to
be implemented in every specific tracker, even though it's not necessary.
Modifying existing trackers to reflect this change.

https://fedorahosted.org/freeipa/ticket/6124

Reviewed-By: Martin Basti <mbasti@redhat.com>
2016-09-21 18:39:56 +02:00

117 lines
4.0 KiB
Python

#
# 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'}
find_keys = {u'dn', u'sudocmd', u'description'}
find_all_keys = retrieve_all_keys
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):
""" 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.find_all_keys)
else:
expected = self.filter_attrs(self.find_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)