This commit is contained in:
Kyle T. Edwards 2018-06-13 18:42:49 +00:00 committed by GitHub
commit c373303ed1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 2 deletions

View File

@ -88,8 +88,12 @@ class JSONRenderer(BaseRenderer):
""" """
Render `data` into JSON, returning a bytestring. Render `data` into JSON, returning a bytestring.
""" """
if data is None: response = None
return bytes() if renderer_context:
response = renderer_context.get('response', None)
if response is not None and response.status_code == 204:
return b''
renderer_context = renderer_context or {} renderer_context = renderer_context or {}
indent = self.get_indent(accepted_media_type, renderer_context) indent = self.get_indent(accepted_media_type, renderer_context)

View File

@ -313,6 +313,17 @@ class JSONRendererTests(TestCase):
data = json.loads(ret.decode('utf-8')) data = json.loads(ret.decode('utf-8'))
self.assertEqual(data, [[o.id, o.name]]) self.assertEqual(data, [[o.id, o.name]])
def test_render_valid_json_when_data_is_none(self):
result = JSONRenderer().render(None)
self.assertEqual(result, b'null')
def test_render_no_content_on_204_response(self):
context = {
'response': Response(status=204),
}
result = JSONRenderer().render(None, renderer_context=context)
self.assertEqual(result, b'')
def test_render_dict_abc_obj(self): def test_render_dict_abc_obj(self):
class Dict(MutableMapping): class Dict(MutableMapping):
def __init__(self): def __init__(self):