Commit 3cc5349b by Jamie Matthews

Clean up and clarify tests for related serializers

parent 68c39737
...@@ -479,7 +479,10 @@ class CallableDefaultValueTests(TestCase): ...@@ -479,7 +479,10 @@ class CallableDefaultValueTests(TestCase):
class ManyRelatedTests(TestCase): class ManyRelatedTests(TestCase):
def setUp(self): def test_reverse_relations(self):
post = BlogPost.objects.create(title="Test blog post")
post.blogpostcomment_set.create(text="I hate this blog post")
post.blogpostcomment_set.create(text="I love this blog post")
class BlogPostCommentSerializer(serializers.Serializer): class BlogPostCommentSerializer(serializers.Serializer):
text = serializers.CharField() text = serializers.CharField()
...@@ -488,15 +491,7 @@ class ManyRelatedTests(TestCase): ...@@ -488,15 +491,7 @@ class ManyRelatedTests(TestCase):
title = serializers.CharField() title = serializers.CharField()
comments = BlogPostCommentSerializer(source='blogpostcomment_set') comments = BlogPostCommentSerializer(source='blogpostcomment_set')
self.comment_serializer_class = BlogPostCommentSerializer serializer = BlogPostSerializer(instance=post)
self.serializer_class = BlogPostSerializer
def test_reverse_relations(self):
post = BlogPost.objects.create(title="Test blog post")
post.blogpostcomment_set.create(text="I hate this blog post")
post.blogpostcomment_set.create(text="I love this blog post")
serializer = self.serializer_class(instance=post)
expected = { expected = {
'title': 'Test blog post', 'title': 'Test blog post',
'comments': [ 'comments': [
...@@ -511,15 +506,17 @@ class ManyRelatedTests(TestCase): ...@@ -511,15 +506,17 @@ class ManyRelatedTests(TestCase):
post = BlogPost.objects.create(title="Test blog post") post = BlogPost.objects.create(title="Test blog post")
post.blogpostcomment_set.create(text="I love this blog post") post.blogpostcomment_set.create(text="I love this blog post")
class ExtendedBlogPostSerializer(self.serializer_class): class BlogPostCommentSerializer(serializers.Serializer):
first_comment = self.comment_serializer_class(source='get_first_comment') text = serializers.CharField()
class BlogPostSerializer(serializers.Serializer):
title = serializers.CharField()
first_comment = BlogPostCommentSerializer(source='get_first_comment')
serializer = BlogPostSerializer(post)
serializer = ExtendedBlogPostSerializer(post)
expected = { expected = {
'title': 'Test blog post', 'title': 'Test blog post',
'comments': [
{'text': 'I love this blog post'}
],
'first_comment': {'text': 'I love this blog post'} 'first_comment': {'text': 'I love this blog post'}
} }
self.assertEqual(serializer.data, expected) self.assertEqual(serializer.data, expected)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment