mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
Clean up and clarify tests for related serializers
This commit is contained in:
parent
68c397371c
commit
3cc5349b2f
|
@ -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):
|
||||||
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):
|
||||||
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)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user