From 8a6041b7978d370418e99df8b9fc06b2055a39e6 Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Thu, 7 Aug 2008 04:51:21 +0000 Subject: 73: Started work on validation rules for opt; added corresponding unit tests --- ipalib/public.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'ipalib/public.py') diff --git a/ipalib/public.py b/ipalib/public.py index 5806d0eb..b43e0af9 100644 --- a/ipalib/public.py +++ b/ipalib/public.py @@ -27,6 +27,19 @@ import plugable import errors +RULE_FLAG = 'validation_rule' + +def rule(obj): + assert not hasattr(obj, RULE_FLAG) + setattr(obj, RULE_FLAG, True) + return obj + +def is_rule(obj): + return getattr(obj, RULE_FLAG, False) is True + + + + class opt(plugable.ReadOnly): __public__ = frozenset(( 'normalize', @@ -35,6 +48,7 @@ class opt(plugable.ReadOnly): 'required', 'type', )) + __rules = None def normalize(self, value): try: @@ -44,6 +58,18 @@ class opt(plugable.ReadOnly): self.__class__.__name__, value, self.type ) + def __get_rules(self): + if self.__rules is None: + self.__rules = tuple(self.__rules_iter()) + return self.__rules + rules = property(__get_rules) + + def __rules_iter(self): + pass + + def validate(self, value): + pass + -- cgit