mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-08 06:14:47 +03:00
A test for a POST that returns multiple objects, which triggers issue #2918
This commit is contained in:
parent
a568d16ae4
commit
342a940708
|
@ -64,6 +64,16 @@ class FKInstanceView(generics.RetrieveUpdateDestroyAPIView):
|
||||||
serializer_class = ForeignKeySerializer
|
serializer_class = ForeignKeySerializer
|
||||||
|
|
||||||
|
|
||||||
|
class ManyPostView(generics.GenericAPIView):
|
||||||
|
queryset = BasicModel.objects.all()
|
||||||
|
serializer_class = BasicSerializer
|
||||||
|
renderer_classes = (renderers.BrowsableAPIRenderer, renderers.JSONRenderer)
|
||||||
|
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
serializer = self.get_serializer(self.get_queryset(), many=True)
|
||||||
|
return Response(serializer.data, status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class SlugBasedInstanceView(InstanceView):
|
class SlugBasedInstanceView(InstanceView):
|
||||||
"""
|
"""
|
||||||
A model with a slug-field.
|
A model with a slug-field.
|
||||||
|
@ -542,3 +552,30 @@ class TestGuardedQueryset(TestCase):
|
||||||
request = factory.get('/')
|
request = factory.get('/')
|
||||||
with pytest.raises(RuntimeError):
|
with pytest.raises(RuntimeError):
|
||||||
view(request).render()
|
view(request).render()
|
||||||
|
|
||||||
|
|
||||||
|
class TestManyPostView(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
"""
|
||||||
|
Create 3 BasicModel instances.
|
||||||
|
"""
|
||||||
|
items = ['foo', 'bar', 'baz']
|
||||||
|
for item in items:
|
||||||
|
BasicModel(text=item).save()
|
||||||
|
self.objects = BasicModel.objects
|
||||||
|
self.data = [
|
||||||
|
{'id': obj.id, 'text': obj.text}
|
||||||
|
for obj in self.objects.all()
|
||||||
|
]
|
||||||
|
self.view = ManyPostView.as_view()
|
||||||
|
|
||||||
|
def test_post_many_post_view(self):
|
||||||
|
"""
|
||||||
|
POST request to ManyPostView should return a list of objects.
|
||||||
|
"""
|
||||||
|
data = {}
|
||||||
|
request = factory.post('/', data, format='json')
|
||||||
|
with self.assertNumQueries(1):
|
||||||
|
response = self.view(request).render()
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
self.assertEqual(len(response.data), 3)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user