summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/public.py5
-rw-r--r--ipalib/tests/test_public.py12
2 files changed, 17 insertions, 0 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index cf95af7c..c01a88d9 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -152,6 +152,11 @@ class Option2(plugable.ReadOnly):
return self.convert(default)
return self.convert(self.default)
+ def get_values(self):
+ if self.type.name in ('Enum', 'CallbackEnum'):
+ return self.type.values
+ return tuple()
+
class Option(plugable.Plugin):
"""
diff --git a/ipalib/tests/test_public.py b/ipalib/tests/test_public.py
index 56da573a..be1b9158 100644
--- a/ipalib/tests/test_public.py
+++ b/ipalib/tests/test_public.py
@@ -291,6 +291,18 @@ class test_Option2(ClassChecker):
assert o.get_default() == (default,)
assert o.get_default(first='John', last='Doe') == ('Hello, John Doe!',)
+ def test_get_default(self):
+ """
+ Tests the `public.Option2.get_values` method.
+ """
+ name = 'status'
+ doc = 'Account status'
+ values = (u'Active', u'Inactive')
+ o = self.cls(name, doc, ipa_types.Unicode())
+ assert o.get_values() == tuple()
+ o = self.cls(name, doc, ipa_types.Enum(*values))
+ assert o.get_values() == values
+
class test_Option(ClassChecker):
"""