From 090b9d356c0c935593a2d6cda267fa3b015ea8a7 Mon Sep 17 00:00:00 2001 From: Artem Muterko Date: Sat, 7 Jan 2017 14:52:57 +0200 Subject: [PATCH] Add tests for StaticHTMLRenderer --- rest_framework/renderers.py | 2 +- tests/test_renderers.py | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 97984daf9..144bd0414 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -228,7 +228,7 @@ class StaticHTMLRenderer(TemplateHTMLRenderer): def render(self, data, accepted_media_type=None, renderer_context=None): renderer_context = renderer_context or {} - response = renderer_context['response'] + response = renderer_context.get('response') if response and response.exception: request = renderer_context['request'] diff --git a/tests/test_renderers.py b/tests/test_renderers.py index 3d149b971..ace4e9287 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -15,7 +15,8 @@ from django.utils.translation import ugettext_lazy as _ from rest_framework import permissions, serializers, status from rest_framework.renderers import ( - BaseRenderer, BrowsableAPIRenderer, HTMLFormRenderer, JSONRenderer + BaseRenderer, BrowsableAPIRenderer, HTMLFormRenderer, JSONRenderer, + StaticHTMLRenderer ) from rest_framework.response import Response from rest_framework.settings import api_settings @@ -580,3 +581,26 @@ class TestMultipleChoiceFieldHTMLFormRenderer(TestCase): result) self.assertInHTML('', result) self.assertInHTML('', result) + + +class StaticHTMLRendererTests(TestCase): + """ + Tests specific for Static HTML Renderer + """ + def setUp(self): + self.renderer = StaticHTMLRenderer() + + def test_static_renderer(self): + data = 'text' + result = self.renderer.render(data) + self.assertEqual(data, result) + + def test_static_renderer_with_exception(self): + class MockRequest(object): + pass + context = { + 'response': Response(status=500, exception=True), + 'request': MockRequest() + } + result = self.renderer.render({}, renderer_context=context) + self.assertEqual(result, '500 Internal Server Error')