diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 06:35:19 +0000 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-09-24 06:35:19 +0000 |
commit | 1125d420bdf453a0b51e58a85d447009dd1a99ff (patch) | |
tree | b70a132ce79a61b380060960deacefd0c4e43cbf | |
parent | 6bedb15674ba941c15832ac84387a40ecd2a2879 (diff) | |
download | freeipa-1125d420bdf453a0b51e58a85d447009dd1a99ff.tar.gz freeipa-1125d420bdf453a0b51e58a85d447009dd1a99ff.tar.xz freeipa-1125d420bdf453a0b51e58a85d447009dd1a99ff.zip |
333: Param.convert() now uses name Param.__multivalue() helper method as Param.normalize()
-rw-r--r-- | ipalib/frontend.py | 20 | ||||
-rw-r--r-- | ipalib/tests/test_frontend.py | 1 |
2 files changed, 9 insertions, 12 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 5971f9df..4a84ce98 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -105,16 +105,18 @@ class Param(plugable.ReadOnly): self.rules = (type_.validate,) + rules lock(self) - def __if_multivalue(self, value, scalar): + def __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 tuple( + scalar(v, i) for (i, v) in enumerate(value) + ) + return (scalar(value, 0),) # tuple return scalar(value) - def __normalize_scalar(self, value): + def __normalize_scalar(self, value, index=None): if not isinstance(value, basestring): return value try: @@ -140,7 +142,7 @@ class Param(plugable.ReadOnly): """ if self.__normalize is None: return value - return self.__if_multivalue(value, self.__normalize_scalar) + return self.__multivalue(value, self.__normalize_scalar) def __convert_scalar(self, value, index=None): if value is None: @@ -153,13 +155,7 @@ class Param(plugable.ReadOnly): return converted def convert(self, value): - if self.multivalue: - if type(value) in (tuple, list): - return tuple( - self.__convert_scalar(v, i) for (i, v) in enumerate(value) - ) - return (self.__convert_scalar(value, 0),) # tuple - return self.__convert_scalar(value) + return self.__multivalue(value, self.__convert_scalar) diff --git a/ipalib/tests/test_frontend.py b/ipalib/tests/test_frontend.py index 63cc9214..d809d1cf 100644 --- a/ipalib/tests/test_frontend.py +++ b/ipalib/tests/test_frontend.py @@ -163,6 +163,7 @@ class test_Param(ClassChecker): # Scenario 2: multivalue=True o = self.cls(name, type_, multivalue=True) + assert o.convert([]) is None for none in [None, (7, None)]: e = raises(TypeError, o.convert, none) assert str(e) == 'value cannot be None' |