summaryrefslogtreecommitdiffstats
path: root/ipalib/ipa_types.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-28 07:57:07 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-28 07:57:07 +0000
commit283c6f8fcec6a4687fd2cc99326a7f2b33e4e8bf (patch)
tree36b8d3a59eb8d10d852d079c8dd71f5e7ee8f879 /ipalib/ipa_types.py
parentc83c478ae17991391ad5431062dd987ea5640469 (diff)
downloadfreeipa-283c6f8fcec6a4687fd2cc99326a7f2b33e4e8bf.tar.gz
freeipa-283c6f8fcec6a4687fd2cc99326a7f2b33e4e8bf.tar.xz
freeipa-283c6f8fcec6a4687fd2cc99326a7f2b33e4e8bf.zip
216: Added ipa_types.Enum.validate() method; added corresponding unit tests
Diffstat (limited to 'ipalib/ipa_types.py')
-rw-r--r--ipalib/ipa_types.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/ipalib/ipa_types.py b/ipalib/ipa_types.py
index 19950ead5..c120b5abf 100644
--- a/ipalib/ipa_types.py
+++ b/ipalib/ipa_types.py
@@ -170,4 +170,11 @@ class Enum(Type):
if type(val) is not type_:
raise TypeError('%r: %r is not %r' % (val, type(val), type_))
self.values = values
+ self.frozenset = frozenset(values)
super(Enum, self).__init__(type_)
+
+ def validate(self, value):
+ if type(value) is not self.type:
+ return 'Incorrect type'
+ if value not in self.frozenset:
+ return 'Invalid value'