diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 06:25:12 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 06:25:12 +0000 |
commit | 6bedb15674ba941c15832ac84387a40ecd2a2879 (patch) | |
tree | 6db19de57d0edd207cacfc15b4fc9c0c4950b346 /ipalib/frontend.py | |
parent | d56f4c643b486bfbcb6523a0fe80252343fa594e (diff) | |
download | freeipa.git-6bedb15674ba941c15832ac84387a40ecd2a2879.tar.gz freeipa.git-6bedb15674ba941c15832ac84387a40ecd2a2879.tar.xz freeipa.git-6bedb15674ba941c15832ac84387a40ecd2a2879.zip |
332: Param.normalize() now returns None if multivalue and len() == 0
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r-- | ipalib/frontend.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 59cdf69f..5971f9df 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -105,6 +105,15 @@ class Param(plugable.ReadOnly): self.rules = (type_.validate,) + rules lock(self) + def __if_multivalue(self, value, scalar): + if self.multivalue: + if type(value) in (tuple, list): + if len(value) == 0: + return None + return tuple(scalar(v) for v in value) + return (scalar(value),) # tuple + return scalar(value) + def __normalize_scalar(self, value): if not isinstance(value, basestring): return value @@ -131,11 +140,7 @@ class Param(plugable.ReadOnly): """ if self.__normalize is None: return value - if self.multivalue: - if type(value) in (tuple, list): - return tuple(self.__normalize_scalar(v) for v in value) - return (self.__normalize_scalar(value),) # tuple - return self.__normalize_scalar(value) + return self.__if_multivalue(value, self.__normalize_scalar) def __convert_scalar(self, value, index=None): if value is None: |