From 7113a120bf12de80b7719f246a714a32309fd9ba Mon Sep 17 00:00:00 2001 From: Warren Jin Date: Sun, 25 Jan 2015 22:21:55 -0500 Subject: [PATCH 1/2] spaces --- tests/test_fields.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_fields.py b/tests/test_fields.py index a7bdad5c0..6b652c92f 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -308,12 +308,12 @@ class TestRecursiveField: def test_serialize_list(self): value = { - 'name':'first', + 'name': 'first', 'next': { - 'name':'second', + 'name': 'second', 'next':{ - 'name':'third', - 'next':None, + 'name': 'third', + 'next': None, } } } From 2e8e9b8f4ceebd5c273d31ca56326304716c3d75 Mon Sep 17 00:00:00 2001 From: Warren Jin Date: Sun, 25 Jan 2015 22:33:58 -0500 Subject: [PATCH 2/2] more testing --- tests/test_fields.py | 49 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/tests/test_fields.py b/tests/test_fields.py index 6b652c92f..eb0dab875 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -294,19 +294,20 @@ class TestCreateOnlyDefault: # Tests for RecursiveField. # ------------------------- + class TestRecursiveField: def setup(self): - class ListSerializer(serializers.Serializer): + class LinkSerializer(serializers.Serializer): name = serializers.CharField() next = serializers.RecursiveField(allow_null=True) - self.list_serializer = ListSerializer + self.link_serializer = LinkSerializer - class TreeSerializer(serializers.Serializer): + class NodeSerializer(serializers.Serializer): name = serializers.CharField() children = serializers.ListField(child=serializers.RecursiveField()) - self.tree_serializer = TreeSerializer + self.node_serializer = NodeSerializer - def test_serialize_list(self): + def test_link_serializer(self): value = { 'name': 'first', 'next': { @@ -318,8 +319,42 @@ class TestRecursiveField: } } - serializer = self.list_serializer(value) - assert serializer.data == value + # test serialization + serializer = self.link_serializer(value) + assert serializer.data == value, \ + 'serialized data does not match input' + + # test deserialization + serializer = self.link_serializer(data=value) + assert serializer.is_valid(), \ + 'cannot validate on deserialization' + assert serializer.validated_data == value, \ + 'deserialized data does not match input' + + def test_node_serializer(self): + value = { + 'name': 'root', + 'children': [{ + 'name': 'first child', + 'children': [], + },{ + 'name': 'second child', + 'children': [], + }] + } + + # serialization + serializer = self.node_serializer(value) + assert serializer.data == value, \ + 'serialized data does not match input' + + # deserialization + serializer = self.link_serializer(data=value) + assert serializer.is_valid(), \ + 'cannot validate on deserialization' + assert serializer.validated_data == value, \ + 'deserialized data does not match input' + # Tests for field input and output values. # ----------------------------------------