From 1f36ab1b780f488869f2880b79a3127840438cc9 Mon Sep 17 00:00:00 2001 From: Martin Kosek Date: Fri, 6 Jan 2012 15:33:22 +0100 Subject: Fix Parameter csv parsing CSV values were not parsed in ipalib.parameters.normalize method properly when passed as a list and not as a basestring. Based on Jan Cholasta's contribution. --- ipalib/parameters.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'ipalib/parameters.py') diff --git a/ipalib/parameters.py b/ipalib/parameters.py index 287304d3b..22144b7cb 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -711,11 +711,17 @@ class Param(ReadOnly): :param value: A proposed value for this parameter. """ if self.multivalue: - if self.csv and isinstance(value, basestring): - csvreader = self.__unicode_csv_reader([unicode(value)]) - value = tuple(csvreader.next()) #pylint: disable=E1101 - elif type(value) not in (tuple, list): + if type(value) not in (tuple, list): value = (value,) + if self.csv: + newval = () + for v in value: + if isinstance(v, basestring): + csvreader = self.__unicode_csv_reader([unicode(v)]) + newval += tuple(csvreader.next()) #pylint: disable=E1101 + else: + newval += (v,) + value = newval if self.normalizer is None: return value if self.multivalue: -- cgit