diff options
| author | Tom Christie | 2012-12-11 21:07:25 +0000 |
|---|---|---|
| committer | Tom Christie | 2012-12-11 21:07:25 +0000 |
| commit | 405822330958c5432dde56b07a61b223c03ca4c7 (patch) | |
| tree | 5f6305d47e82c37f597d4ae533b0a65546ebd7f0 /rest_framework/tests/serializer.py | |
| parent | 17b77fc446df29e7708c210eade8369c7babc466 (diff) | |
| download | django-rest-framework-405822330958c5432dde56b07a61b223c03ca4c7.tar.bz2 | |
Fix broken nested fields
Diffstat (limited to 'rest_framework/tests/serializer.py')
| -rw-r--r-- | rest_framework/tests/serializer.py | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index f80762f0..50a5f5a4 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -1,4 +1,5 @@ -import datetime, pickle +import datetime +import pickle from django.test import TestCase from rest_framework import serializers from rest_framework.tests.models import (Album, ActionItem, Anchor, BasicModel, @@ -727,23 +728,39 @@ class SerializerPickleTests(TestCase): fields = ('name', 'age') pickle.dumps(InnerPersonSerializer(Person(name="Noah", age=950)).data) + class DepthTest(TestCase): - def test_depth(self): - user = Person.objects.create(name="django",age=1) - post = BlogPost.objects.create(title="Test blog post", writer=user) + def test_implicit_nesting(self): + writer = Person.objects.create(name="django", age=1) + post = BlogPost.objects.create(title="Test blog post", writer=writer) + + class BlogPostSerializer(serializers.ModelSerializer): + class Meta: + model = BlogPost + depth = 1 + + serializer = BlogPostSerializer(instance=post) + expected = {'id': 1, 'title': u'Test blog post', + 'writer': {'id': 1, 'name': u'django', 'age': 1}} + + self.assertEqual(serializer.data, expected) + + def test_explicit_nesting(self): + writer = Person.objects.create(name="django", age=1) + post = BlogPost.objects.create(title="Test blog post", writer=writer) class PersonSerializer(serializers.ModelSerializer): class Meta: model = Person - fields = ("name", "age") class BlogPostSerializer(serializers.ModelSerializer): + writer = PersonSerializer() + class Meta: model = BlogPost - depth = 1 serializer = BlogPostSerializer(instance=post) expected = {'id': 1, 'title': u'Test blog post', - 'writer': {'id': 1, 'name': u'django', 'age':1}} + 'writer': {'id': 1, 'name': u'django', 'age': 1}} self.assertEqual(serializer.data, expected) |
