diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-07 06:02:46 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-08-07 06:02:46 +0000 |
commit | 8cbd8343be843e2972b0f59250c148973f26a091 (patch) | |
tree | b0f4cb48084777294664a57c5466b83d5e218b73 /ipalib/public.py | |
parent | 2cc88a7a3233d6bd70ec174ba976d093dc7f0d98 (diff) | |
download | freeipa.git-8cbd8343be843e2972b0f59250c148973f26a091.tar.gz freeipa.git-8cbd8343be843e2972b0f59250c148973f26a091.tar.xz freeipa.git-8cbd8343be843e2972b0f59250c148973f26a091.zip |
75: Fixed opt.__rules_iter; added corresponding unit tests
Diffstat (limited to 'ipalib/public.py')
-rw-r--r-- | ipalib/public.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ipalib/public.py b/ipalib/public.py index baae83e4..9467feaf 100644 --- a/ipalib/public.py +++ b/ipalib/public.py @@ -58,17 +58,24 @@ class opt(plugable.ReadOnly): def __get_rules(self): if self.__rules is None: - self.__rules = tuple(self.__rules_iter()) + rules = sorted( + self.__rules_iter(), + key=lambda f: getattr(f, '__name__'), + ) + object.__setattr__(self, '_opt__rules', tuple(rules)) return self.__rules rules = property(__get_rules) def __rules_iter(self): - for name in dir(self): + for name in dir(self.__class__): if name.startswith('_'): continue - attr = getattr(self, name) - if is_rule(attr): - yield attr + base_attr = getattr(self.__class__, name) + if is_rule(base_attr): + attr = getattr(self, name) + if is_rule(attr): + yield attr + def validate(self, value): pass @@ -77,7 +84,6 @@ class opt(plugable.ReadOnly): - class cmd(plugable.Plugin): __public__ = frozenset(( 'normalize', |