Skip to content

Commit 456e71a

Browse files
committed
Improve test_renderer_mapping test
1 parent 13158d6 commit 456e71a

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

tests/schemas/test_openapi.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from rest_framework.authtoken.views import obtain_auth_token
1111
from rest_framework.compat import uritemplate
1212
from rest_framework.parsers import JSONParser, MultiPartParser
13-
from rest_framework.renderers import JSONRenderer, OpenAPIRenderer
13+
from rest_framework.renderers import JSONRenderer, OpenAPIRenderer, BrowsableAPIRenderer, BaseRenderer
1414
from rest_framework.request import Request
1515
from rest_framework.schemas.openapi import AutoSchema, SchemaGenerator
1616

@@ -507,9 +507,16 @@ def test_renderer_mapping(self):
507507
path = '/{id}/'
508508
method = 'GET'
509509

510+
class CustomBrowsableAPIRenderer(BrowsableAPIRenderer):
511+
media_type = 'image/jpeg' # that's a wild API renderer
512+
513+
class TextRenderer(BaseRenderer):
514+
media_type = 'text/plain'
515+
format = 'text'
516+
510517
class View(generics.CreateAPIView):
511518
serializer_class = views.ExampleSerializer
512-
renderer_classes = [JSONRenderer]
519+
renderer_classes = [JSONRenderer, TextRenderer, BrowsableAPIRenderer, CustomBrowsableAPIRenderer]
513520

514521
view = create_view(
515522
View,
@@ -524,8 +531,8 @@ class View(generics.CreateAPIView):
524531
# schema support is there
525532
success_response = responses['200']
526533

527-
assert len(success_response['content'].keys()) == 1
528-
assert 'application/json' in success_response['content']
534+
# Check that the API renderers aren't included, but custom renderers are
535+
assert set(success_response['content']) == {'application/json', 'text/plain'}
529536

530537
def test_openapi_yaml_rendering_without_aliases(self):
531538
renderer = OpenAPIRenderer()

0 commit comments

Comments
 (0)