mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-23 01:57:00 +03:00
Add test to check if a 415 status is returned for unsupported media types
This commit is contained in:
parent
7f80a2e0ad
commit
60c17253ab
|
@ -5,6 +5,7 @@ from django.test import TestCase
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
|
|
||||||
from rest_framework import generics, routers, serializers, status, viewsets
|
from rest_framework import generics, routers, serializers, status, viewsets
|
||||||
|
from rest_framework.parsers import JSONParser
|
||||||
from rest_framework.renderers import (
|
from rest_framework.renderers import (
|
||||||
BaseRenderer, BrowsableAPIRenderer, JSONRenderer
|
BaseRenderer, BrowsableAPIRenderer, JSONRenderer
|
||||||
)
|
)
|
||||||
|
@ -79,6 +80,14 @@ class MockViewSettingContentType(APIView):
|
||||||
return Response(DUMMYCONTENT, status=DUMMYSTATUS, content_type='setbyview')
|
return Response(DUMMYCONTENT, status=DUMMYSTATUS, content_type='setbyview')
|
||||||
|
|
||||||
|
|
||||||
|
class JSONView(APIView):
|
||||||
|
parser_classes = (JSONParser,)
|
||||||
|
|
||||||
|
def post(self, request, **kwargs):
|
||||||
|
assert request.data
|
||||||
|
return Response(DUMMYCONTENT)
|
||||||
|
|
||||||
|
|
||||||
class HTMLView(APIView):
|
class HTMLView(APIView):
|
||||||
renderer_classes = (BrowsableAPIRenderer, )
|
renderer_classes = (BrowsableAPIRenderer, )
|
||||||
|
|
||||||
|
@ -114,6 +123,7 @@ urlpatterns = [
|
||||||
url(r'^.*\.(?P<format>.+)$', MockView.as_view(renderer_classes=[RendererA, RendererB, RendererC])),
|
url(r'^.*\.(?P<format>.+)$', MockView.as_view(renderer_classes=[RendererA, RendererB, RendererC])),
|
||||||
url(r'^$', MockView.as_view(renderer_classes=[RendererA, RendererB, RendererC])),
|
url(r'^$', MockView.as_view(renderer_classes=[RendererA, RendererB, RendererC])),
|
||||||
url(r'^html$', HTMLView.as_view()),
|
url(r'^html$', HTMLView.as_view()),
|
||||||
|
url(r'^json$', JSONView.as_view()),
|
||||||
url(r'^html1$', HTMLView1.as_view()),
|
url(r'^html1$', HTMLView1.as_view()),
|
||||||
url(r'^html_new_model$', HTMLNewModelView.as_view()),
|
url(r'^html_new_model$', HTMLNewModelView.as_view()),
|
||||||
url(r'^html_new_model_viewset', include(new_model_viewset_router.urls)),
|
url(r'^html_new_model_viewset', include(new_model_viewset_router.urls)),
|
||||||
|
@ -203,6 +213,25 @@ class RendererIntegrationTests(TestCase):
|
||||||
self.assertEqual(resp.status_code, DUMMYSTATUS)
|
self.assertEqual(resp.status_code, DUMMYSTATUS)
|
||||||
|
|
||||||
|
|
||||||
|
class UnsupportedMediaTypeTests(TestCase):
|
||||||
|
urls = 'tests.test_response'
|
||||||
|
|
||||||
|
def test_should_allow_posting_json(self):
|
||||||
|
response = self.client.post('/json', data='{"test": 123}', content_type='application/json')
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
def test_should_not_allow_posting_xml(self):
|
||||||
|
response = self.client.post('/json', data='<test>123</test>', content_type='application/xml')
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 415)
|
||||||
|
|
||||||
|
def test_should_not_allow_posting_a_form(self):
|
||||||
|
response = self.client.post('/json', data={'test': 123})
|
||||||
|
|
||||||
|
self.assertEqual(response.status_code, 415)
|
||||||
|
|
||||||
|
|
||||||
class Issue122Tests(TestCase):
|
class Issue122Tests(TestCase):
|
||||||
"""
|
"""
|
||||||
Tests that covers #122.
|
Tests that covers #122.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user