From 5313e5a491ceefe866a287cb4c320f0fee0474e2 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Mon, 11 Aug 2008 19:11:26 +0000 Subject: 109: Cleanups in cmd; added unit tests for cmd.validate() --- ipalib/public.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'ipalib/public.py') 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) -- cgit