|
18 | 18 | from rest_framework import permissions, serializers, status
|
19 | 19 | from rest_framework.renderers import (
|
20 | 20 | AdminRenderer, BaseRenderer, BrowsableAPIRenderer, DocumentationRenderer,
|
21 |
| - HTMLFormRenderer, JSONRenderer, StaticHTMLRenderer |
| 21 | + HTMLFormRenderer, JSONRenderer, SchemaJSRenderer, StaticHTMLRenderer |
22 | 22 | )
|
23 | 23 | from rest_framework.request import Request
|
24 | 24 | from rest_framework.response import Response
|
@@ -736,3 +736,20 @@ def test_document_with_link_named_data(self):
|
736 | 736 |
|
737 | 737 | html = renderer.render(document, accepted_media_type="text/html", renderer_context={"request": request})
|
738 | 738 | assert '<h1>Data Endpoint API</h1>' in html
|
| 739 | + |
| 740 | + |
| 741 | +class TestSchemaJSRenderer(TestCase): |
| 742 | + |
| 743 | + def test_schemajs_output(self): |
| 744 | + """ |
| 745 | + Test output of the SchemaJS renderer as per #5608. Django 2.0 on Py3 prints binary data as b'xyz' in templates, |
| 746 | + and the base64 encoding used by SchemaJSRenderer outputs base64 as binary. Test fix. |
| 747 | + """ |
| 748 | + factory = APIRequestFactory() |
| 749 | + request = factory.get('/') |
| 750 | + |
| 751 | + renderer = SchemaJSRenderer() |
| 752 | + |
| 753 | + output = renderer.render('data', renderer_context={"request": request}) |
| 754 | + assert "'ImRhdGEi'" in output |
| 755 | + assert "'b'ImRhdGEi''" not in output |
0 commit comments