summaryrefslogtreecommitdiffstats
path: root/ipalib/frontend.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-09-24 07:05:43 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-09-24 07:05:43 +0000
commitfb57b919376322160df94aefd84bbebc52a6e53f (patch)
tree9452eea8329546c7a0b96a7e62b2f95a271e9533 /ipalib/frontend.py
parente63c462f31bc34c5b19d243492c7644f423d55d0 (diff)
downloadfreeipa-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.py15
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.
"""