aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debug_toolbar/panels/redirects.py4
-rw-r--r--setup.py3
-rw-r--r--tests/context_processors.py3
-rw-r--r--tests/middlewares.py5
-rw-r--r--tests/panels/test_redirects.py15
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
diff --git a/setup.py b/setup.py
index e28741e..d768c4a 100644
--- a/setup.py
+++ b/setup.py
@@ -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/'