From: Tomas Babej Date: Wed, 21 Jan 2015 06:51:02 +0000 (+0100) Subject: TaskResource: Do not serialize annotations as a list in a string X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/commitdiff_plain/447b6c8847cbe8f52970ae097e7b676d8302aed0 TaskResource: Do not serialize annotations as a list in a string --- diff --git a/tasklib/task.py b/tasklib/task.py index d386f82..a273815 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -101,12 +101,12 @@ class SerializingObject(object): def serialize_annotations(self, value): value = value if value is not None else [] - serialized_annotations = [annotation.export_data() for annotation in value] - if serialized_annotations: - return '[' + ','.join(serialized_annotations) + ']' - else: - return '' + # This may seem weird, but it's correct, we want to export + # a list of dicts as serialized value + serialized_annotations = [json.loads(annotation.export_data()) + for annotation in value] + return serialized_annotations if serialized_annotations else '' def deserialize_annotations(self, data): return [TaskAnnotation(self, d) for d in data] if data else [] diff --git a/tasklib/tests.py b/tasklib/tests.py index 686e086..3a3f25d 100644 --- a/tasklib/tests.py +++ b/tasklib/tests.py @@ -595,7 +595,7 @@ class AnnotationTest(TasklibTest): t.add_annotation("annotation1") t.add_annotation("annotation2") - data = json.loads(t._serialize('annotations', t._data['annotations'])) + data = t._serialize('annotations', t._data['annotations']) self.assertEqual(len(data), 2) self.assertEqual(type(data[0]), dict)