diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 07:05:43 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 07:05:43 +0000 |
commit | fb57b919376322160df94aefd84bbebc52a6e53f (patch) | |
tree | 9452eea8329546c7a0b96a7e62b2f95a271e9533 /ipalib/frontend.py | |
parent | e63c462f31bc34c5b19d243492c7644f423d55d0 (diff) | |
download | freeipa-fb57b919376322160df94aefd84bbebc52a6e53f.tar.gz freeipa-fb57b919376322160df94aefd84bbebc52a6e53f.tar.xz freeipa-fb57b919376322160df94aefd84bbebc52a6e53f.zip |
336: Param.__dispatch() now returns None for any in (None, '', u'', tuple(), []) regardless whether Param is multivalue
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r-- | ipalib/frontend.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 7d75fa17..80c4050e 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -106,12 +106,10 @@ class Param(plugable.ReadOnly): lock(self) def __dispatch(self, value, scalar): - if value is None: - return None + if value in (None, '', tuple(), []): + return if self.multivalue: if type(value) in (tuple, list): - if len(value) == 0: - return None return tuple( scalar(v, i) for (i, v) in enumerate(value) ) @@ -148,7 +146,7 @@ class Param(plugable.ReadOnly): def __convert_scalar(self, value, index=None): if value is None: - return None + return converted = self.type(value) if converted is None: raise errors.ConversionError( @@ -158,7 +156,12 @@ class Param(plugable.ReadOnly): def convert(self, value): """ - Convert/coerce ``value`` to Python type for this parameter. + Convert/coerce ``value`` to Python type for this `Param`. + + If ``value`` can not be converted, ConversionError is raised. + + If ``value`` is None, conversion is not attempted and None is + returned. :param value: A proposed value for this parameter. """ |