Return parsed list value in CommaDelimitedList

What's `Ref' got from `CommaDelimitedList' parameter is unicode
string, so failed validation in properties.

The solution here is add list value in `CommaDelimitedList'.

Fixes bug #1226483

Change-Id: I5534ff6027d6f5be3a844778d025b73ab9500796
This commit is contained in:
JUN JIE NAN 2013-09-26 17:04:53 +08:00
parent 6e7fa3266a
commit 7f81f29a97
2 changed files with 10 additions and 1 deletions

View File

@ -249,6 +249,9 @@ class CommaDelimitedListParam(Parameter, collections.Sequence):
raise ValueError(message % str(err))
return value
def value(self):
return self.parsed
def __len__(self):
'''Return the length of the list.'''
return len(self.parsed)

View File

@ -259,7 +259,13 @@ class ParameterTest(testtools.TestCase):
schema = {'Type': 'CommaDelimitedList',
'AllowedValues': ['foo', 'bar', 'baz']}
p = self.new_parameter('p', schema, 'baz,foo,bar')
self.assertEqual(p.value(), 'baz,foo,bar')
self.assertEqual(p.value(), 'baz,foo,bar'.split(','))
schema['Default'] = []
p = self.new_parameter('p', schema)
self.assertEqual(p.value(), [])
schema['Default'] = 'baz,foo,bar'
p = self.new_parameter('p', schema)
self.assertEqual(p.value(), 'baz,foo,bar'.split(','))
def test_list_value_list_bad(self):
schema = {'Type': 'CommaDelimitedList',