config: Make list return tuples so we get imuttable data.

This commit is contained in:
Thomas Adamcik 2013-04-02 19:19:24 +02:00
parent dcd0d7e813
commit 29a4ff040e
2 changed files with 6 additions and 6 deletions

View File

@ -154,7 +154,7 @@ class List(ConfigValue):
values = re.split(r'\s*\n\s*', value.strip())
else:
values = re.split(r'\s*,\s*', value.strip())
return [v for v in values if v]
return tuple([v for v in values if v])
def serialize(self, value):
return '\n '.join(v.encode('utf-8') for v in value)

View File

@ -199,10 +199,10 @@ class ListTest(unittest.TestCase):
def test_deserialize_conversion_success(self):
value = config.List()
expected = ['foo', 'bar', 'baz']
expected = ('foo', 'bar', 'baz')
self.assertEqual(expected, value.deserialize('foo, bar ,baz '))
expected = ['foo,bar', 'bar', 'baz']
expected = ('foo,bar', 'bar', 'baz')
self.assertEqual(expected, value.deserialize(' foo,bar\nbar\nbaz'))
def test_deserialize_enforces_required(self):
@ -212,12 +212,12 @@ class ListTest(unittest.TestCase):
def test_deserialize_respects_optional(self):
value = config.List(optional=True)
self.assertEqual([], value.deserialize(''))
self.assertEqual([], value.deserialize(' '))
self.assertEqual(tuple(), value.deserialize(''))
self.assertEqual(tuple(), value.deserialize(' '))
def test_serialize(self):
value = config.List()
result = value.serialize(['foo', 'bar', 'baz'])
result = value.serialize(('foo', 'bar', 'baz'))
self.assertRegexpMatches(result, r'foo\n\s*bar\n\s*baz')