diff options
| -rw-r--r-- | debug_toolbar/panels/redirects.py | 4 | ||||
| -rw-r--r-- | setup.py | 3 | ||||
| -rw-r--r-- | tests/context_processors.py | 3 | ||||
| -rw-r--r-- | tests/middlewares.py | 5 | ||||
| -rw-r--r-- | tests/panels/test_redirects.py | 15 |
5 files changed, 27 insertions, 3 deletions
diff --git a/debug_toolbar/panels/redirects.py b/debug_toolbar/panels/redirects.py index 757c65c..4e5858b 100644 --- a/debug_toolbar/panels/redirects.py +++ b/debug_toolbar/panels/redirects.py @@ -1,7 +1,7 @@ from __future__ import absolute_import, unicode_literals from django.core.handlers.wsgi import STATUS_CODE_TEXT -from django.shortcuts import render +from django.shortcuts import render_to_response from django.utils.translation import ugettext_lazy as _ from debug_toolbar.panels import Panel @@ -28,6 +28,6 @@ class RedirectsPanel(Panel): status_line = '%s %s' % (response.status_code, reason_phrase) cookies = response.cookies context = {'redirect_to': redirect_to, 'status_line': status_line} - response = render(request, 'debug_toolbar/redirect.html', context) + response = render_to_response('debug_toolbar/redirect.html', context) response.cookies = cookies return response @@ -1,11 +1,12 @@ from setuptools import setup, find_packages +from io import open setup( name='django-debug-toolbar', version='1.1', description='A configurable set of panels that display various debug ' 'information about the current request/response.', - long_description=open('README.rst').read(), + long_description=open('README.rst', encoding='utf-8').read(), author='Rob Hudson', author_email='rob@cogit8.org', url='https://github.com/django-debug-toolbar/django-debug-toolbar', diff --git a/tests/context_processors.py b/tests/context_processors.py new file mode 100644 index 0000000..3514639 --- /dev/null +++ b/tests/context_processors.py @@ -0,0 +1,3 @@ + +def custom(req): + msg = req.myattr diff --git a/tests/middlewares.py b/tests/middlewares.py new file mode 100644 index 0000000..44a3ef1 --- /dev/null +++ b/tests/middlewares.py @@ -0,0 +1,5 @@ + + +class CustomMiddleware(object): + def process_request(request): + request.myattr = 'test attribute' diff --git a/tests/panels/test_redirects.py b/tests/panels/test_redirects.py index 7e94e77..8e63ff0 100644 --- a/tests/panels/test_redirects.py +++ b/tests/panels/test_redirects.py @@ -1,6 +1,7 @@ from __future__ import absolute_import, unicode_literals import django +from django.conf import settings from django.http import HttpResponse from django.test.utils import override_settings from django.utils import unittest @@ -32,6 +33,20 @@ class RedirectsPanelTestCase(BaseTestCase): self.assertContains(response, '302 FOUND') self.assertContains(response, 'http://somewhere/else/') + def test_redirect_breaks_procesor(self): + middlewares = settings.MIDDLEWARE_CLASSES + ['tests.middlewares.CustomMiddleware'] + context_processors = settings.TEMPLATE_CONTEXT_PROCESSORS + \ + ('tests.context_processors.custom',) + + with self.settings(MIDDLEWARE_CLASSES=middlewares, + TEMPLATE_CONTEXT_PROCESSORS=context_processors): + redirect = HttpResponse(status=302) + redirect['Location'] = 'http://somewhere/else/' + response = self.panel.process_response(self.request, redirect) + self.assertFalse(response is redirect) + self.assertContains(response, '302 FOUND') + self.assertContains(response, 'http://somewhere/else/') + def test_unknown_status_code(self): redirect = HttpResponse(status=369) redirect['Location'] = 'http://somewhere/else/' |
