aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJannis Leidel2014-04-15 13:14:45 -0400
committerJannis Leidel2014-04-15 13:14:45 -0400
commit9ca821ad6b5f2523275682c10adba3d1f2e09edc (patch)
treee4b35af392b8b9e3d5dcb87b4dfa8e1a00eca684
parentf8fa4a56c01d12b75db977510c29826379be720d (diff)
parent15b1304e74c67d78f400cf63e9ffe06d3f4318dd (diff)
downloaddjango-debug-toolbar-9ca821ad6b5f2523275682c10adba3d1f2e09edc.tar.bz2
Merge pull request #578 from catalanojuan/fix-dont-run-context-processor-for-redirects
Fix dont run context processor for redirects
-rw-r--r--debug_toolbar/panels/redirects.py4
-rw-r--r--tests/context_processors.py3
-rw-r--r--tests/middlewares.py5
-rw-r--r--tests/panels/test_redirects.py15
4 files changed, 25 insertions, 2 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/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/'