231: Added Option2.get_default() method; added corresponding unit tests

This commit is contained in:
Jason Gerard DeRose
2008-09-02 19:05:10 +00:00
parent bc08225dcd
commit 85f7a08e5d
2 changed files with 48 additions and 2 deletions

View File

@@ -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):
"""