models: Support serialization of lists of strings

This commit is contained in:
Stein Magnus Jodal 2013-01-06 22:37:37 +01:00
parent 1ea83803a5
commit af10e642f2
2 changed files with 10 additions and 1 deletions

View File

@ -87,7 +87,9 @@ class ImmutableObject(object):
public_key = key.lstrip('_')
value = self.__dict__[key]
if isinstance(value, (set, frozenset, list, tuple)):
value = [o.serialize() for o in value]
value = [
v.serialize() if isinstance(v, ImmutableObject) else v
for v in value]
elif isinstance(value, ImmutableObject):
value = value.serialize()
if value:

View File

@ -249,6 +249,13 @@ class AlbumTest(unittest.TestCase):
'artists': [artist.serialize()]},
Album(uri='uri', name='name', artists=[artist]).serialize())
def test_serialize_with_images(self):
image = 'data:foobar'
self.assertDictEqual(
{'__model__': 'Album', 'uri': 'uri', 'name': 'name',
'images': [image]},
Album(uri='uri', name='name', images=[image]).serialize())
def test_to_json_and_back(self):
album1 = Album(uri='uri', name='name', artists=[Artist(name='foo')])
serialized = json.dumps(album1, cls=ModelJSONEncoder)