diff options
| -rw-r--r-- | debug_toolbar/panels/redirects.py | 4 | ||||
| -rw-r--r-- | tests/context_processors.py | 3 | ||||
| -rw-r--r-- | tests/middlewares.py | 5 | ||||
| -rw-r--r-- | tests/panels/test_redirects.py | 15 | 
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/' | 
