From 85f7a08e5d11b3d09b6c36b7a683f39846f8821e Mon Sep 17 00:00:00 2001 From: Jason Gerard DeRose Date: Tue, 2 Sep 2008 19:05:10 +0000 Subject: 231: Added Option2.get_default() method; added corresponding unit tests --- ipalib/public.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'ipalib/public.py') diff --git a/ipalib/public.py b/ipalib/public.py index ea9a06a3..cf95af7c 100644 --- a/ipalib/public.py +++ b/ipalib/public.py @@ -86,8 +86,13 @@ class DefaultFrom(plugable.ReadOnly): class Option2(plugable.ReadOnly): - def __init__(self, name, doc, type_, required=False, multivalue=False, - default=None, default_from=None, rules=tuple(), normalize=None): + def __init__(self, name, doc, type_, + required=False, + multivalue=False, + default=None, + default_from=None, + rules=tuple(), + normalize=None): self.name = check_name(name) self.doc = check_type(doc, str, 'doc') self.type = check_isinstance(type_, ipa_types.Type, 'type_') @@ -140,6 +145,13 @@ class Option2(plugable.ReadOnly): else: self.__validate_scalar(value) + def get_default(self, **kw): + if self.default_from is not None: + default = self.default_from(**kw) + if default is not None: + return self.convert(default) + return self.convert(self.default) + class Option(plugable.Plugin): """ -- cgit