diff options
-rw-r--r-- | ipalib/public.py | 5 | ||||
-rw-r--r-- | ipalib/tests/test_public.py | 12 |
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): """ |