10
10
from rest_framework .authtoken .views import obtain_auth_token
11
11
from rest_framework .compat import uritemplate
12
12
from rest_framework .parsers import JSONParser , MultiPartParser
13
- from rest_framework .renderers import JSONRenderer , OpenAPIRenderer
13
+ from rest_framework .renderers import (
14
+ BaseRenderer , BrowsableAPIRenderer , JSONRenderer , OpenAPIRenderer
15
+ )
14
16
from rest_framework .request import Request
15
17
from rest_framework .schemas .openapi import AutoSchema , SchemaGenerator
16
18
@@ -507,9 +509,16 @@ def test_renderer_mapping(self):
507
509
path = '/{id}/'
508
510
method = 'GET'
509
511
512
+ class CustomBrowsableAPIRenderer (BrowsableAPIRenderer ):
513
+ media_type = 'image/jpeg' # that's a wild API renderer
514
+
515
+ class TextRenderer (BaseRenderer ):
516
+ media_type = 'text/plain'
517
+ format = 'text'
518
+
510
519
class View (generics .CreateAPIView ):
511
520
serializer_class = views .ExampleSerializer
512
- renderer_classes = [JSONRenderer ]
521
+ renderer_classes = [JSONRenderer , TextRenderer , BrowsableAPIRenderer , CustomBrowsableAPIRenderer ]
513
522
514
523
view = create_view (
515
524
View ,
@@ -524,8 +533,8 @@ class View(generics.CreateAPIView):
524
533
# schema support is there
525
534
success_response = responses ['200' ]
526
535
527
- assert len ( success_response [ 'content' ]. keys ()) == 1
528
- assert ' application/json' in success_response [ 'content' ]
536
+ # Check that the API renderers aren't included, but custom renderers are
537
+ assert set ( success_response [ 'content' ]) == { ' application/json', 'text/plain' }
529
538
530
539
def test_openapi_yaml_rendering_without_aliases (self ):
531
540
renderer = OpenAPIRenderer ()
0 commit comments