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 JSONRenderer , OpenAPIRenderer , BrowsableAPIRenderer , BaseRenderer
14
14
from rest_framework .request import Request
15
15
from rest_framework .schemas .openapi import AutoSchema , SchemaGenerator
16
16
@@ -507,9 +507,16 @@ def test_renderer_mapping(self):
507
507
path = '/{id}/'
508
508
method = 'GET'
509
509
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
+
510
517
class View (generics .CreateAPIView ):
511
518
serializer_class = views .ExampleSerializer
512
- renderer_classes = [JSONRenderer ]
519
+ renderer_classes = [JSONRenderer , TextRenderer , BrowsableAPIRenderer , CustomBrowsableAPIRenderer ]
513
520
514
521
view = create_view (
515
522
View ,
@@ -524,8 +531,8 @@ class View(generics.CreateAPIView):
524
531
# schema support is there
525
532
success_response = responses ['200' ]
526
533
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' }
529
536
530
537
def test_openapi_yaml_rendering_without_aliases (self ):
531
538
renderer = OpenAPIRenderer ()
0 commit comments