diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-11 19:11:26 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-11 19:11:26 +0000 |
commit | 5313e5a491ceefe866a287cb4c320f0fee0474e2 (patch) | |
tree | 608f3d712795be52307049a01ae43aa61c418918 /ipalib/public.py | |
parent | 8a6ece2ffbfc142beb1d08e09809c388b3ede160 (diff) | |
download | freeipa.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.py | 20 |
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) |