aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/test_renderers.py
diff options
context:
space:
mode:
authorTom Christie2013-12-09 07:34:08 +0000
committerTom Christie2013-12-09 07:34:08 +0000
commit06d8a31e132c99a9645e26b5def3a1d9b9585c24 (patch)
tree5836843af1e169a00a703a2b2dc271bcf990e6e8 /rest_framework/tests/test_renderers.py
parent774298f145d18292b76f2bd90469e25c1950b1af (diff)
downloaddjango-rest-framework-06d8a31e132c99a9645e26b5def3a1d9b9585c24.tar.bz2
Catch and mask ParseErrors that occur during rendering of the BrowsableAPI.
Diffstat (limited to 'rest_framework/tests/test_renderers.py')
-rw-r--r--rest_framework/tests/test_renderers.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/rest_framework/tests/test_renderers.py b/rest_framework/tests/test_renderers.py
index 549e763b..10aa4248 100644
--- a/rest_framework/tests/test_renderers.py
+++ b/rest_framework/tests/test_renderers.py
@@ -69,6 +69,12 @@ class MockGETView(APIView):
return Response({'foo': ['bar', 'baz']})
+class MockPOSTView(APIView):
+
+ def post(self, request, **kwargs):
+ return Response({'foo': request.DATA})
+
+
class HTMLView(APIView):
renderer_classes = (BrowsableAPIRenderer, )
@@ -88,7 +94,7 @@ urlpatterns = patterns('',
url(r'^cache$', MockGETView.as_view()),
url(r'^jsonp/jsonrenderer$', MockGETView.as_view(renderer_classes=[JSONRenderer, JSONPRenderer])),
url(r'^jsonp/nojsonrenderer$', MockGETView.as_view(renderer_classes=[JSONPRenderer])),
- url(r'^parseerror$', MockGETView.as_view(renderer_classes=[JSONRenderer, BrowsableAPIRenderer])),
+ url(r'^parseerror$', MockPOSTView.as_view(renderer_classes=[JSONRenderer, BrowsableAPIRenderer])),
url(r'^html$', HTMLView.as_view()),
url(r'^html1$', HTMLView1.as_view()),
url(r'^api', include('rest_framework.urls', namespace='rest_framework'))
@@ -224,8 +230,8 @@ class RendererEndToEndTests(TestCase):
"""Invalid data should still render the browsable API correctly."""
resp = self.client.post('/parseerror', data='foobar', content_type='application/json', HTTP_ACCEPT='text/html')
self.assertEqual(resp['Content-Type'], 'text/html; charset=utf-8')
- self.assertContains(resp.content, 'Mock GET View')
- self.assertEqual(resp.status_code, status.HTTP_400_)
+ self.assertIn('Mock Post', resp.content)
+ self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)
_flat_repr = '{"foo": ["bar", "baz"]}'
_indented_repr = '{\n "foo": [\n "bar",\n "baz"\n ]\n}'