summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-07 04:51:21 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-07 04:51:21 +0000
commit8a6041b7978d370418e99df8b9fc06b2055a39e6 (patch)
tree331712c5f00560e1b6076e0e88360536043a8532 /ipalib/public.py
parentfadbae642053565be1d10bc5d6b40b151a97ff16 (diff)
downloadfreeipa.git-8a6041b7978d370418e99df8b9fc06b2055a39e6.tar.gz
freeipa.git-8a6041b7978d370418e99df8b9fc06b2055a39e6.tar.xz
freeipa.git-8a6041b7978d370418e99df8b9fc06b2055a39e6.zip
73: Started work on validation rules for opt; added corresponding unit tests
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py26
1 files changed, 26 insertions, 0 deletions
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
+