summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-11 19:11:26 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-11 19:11:26 +0000
commit5313e5a491ceefe866a287cb4c320f0fee0474e2 (patch)
tree608f3d712795be52307049a01ae43aa61c418918 /ipalib/public.py
parent8a6ece2ffbfc142beb1d08e09809c388b3ede160 (diff)
downloadfreeipa.git-5313e5a491ceefe866a287cb4c320f0fee0474e2.tar.gz
freeipa.git-5313e5a491ceefe866a287cb4c320f0fee0474e2.tar.xz
freeipa.git-5313e5a491ceefe866a287cb4c320f0fee0474e2.zip
109: Cleanups in cmd; added unit tests for cmd.validate()
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index d1c4fa2a..88b08be5 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -46,13 +46,12 @@ class option(plugable.Plugin):
__public__ = frozenset((
'normalize',
- 'validate',
'default',
+ 'validate',
'required',
'type',
))
__rules = None
-
type = unicode
required = False
@@ -94,10 +93,11 @@ class option(plugable.Plugin):
tuple is lazily initialized the first time the property is accessed.
"""
if self.__rules is None:
- self.__rules = tuple(sorted(
+ rules = tuple(sorted(
self.__rules_iter(),
key=lambda f: getattr(f, '__name__'),
))
+ object.__setattr__(self, '_option__rules', rules)
return self.__rules
rules = property(__get_rules)
@@ -132,6 +132,7 @@ class cmd(plugable.Plugin):
'normalize',
'default',
'validate',
+ 'execute',
'__call__',
'get_doc',
'options',
@@ -196,7 +197,18 @@ class cmd(plugable.Plugin):
def validate(self, **kw):
for (key, value) in kw.items():
if key in self.options:
- self.options.validate(value)
+ self.options[key].validate(value)
+
+ def execute(self, **kw)
+ pass
+
+ def print_n_call(self, method, kw):
+ print '%s.%s(%s)' % (
+ self.name,
+ method,
+ ' '.join('%s=%r' % (k, v) for (k, v) in kw.items()),
+ )
+ getattr(self, method)(**kw)
def __call__(self, **kw):
kw = self.normalize(**kw)