From f4666321048d04514a4900b7301d61a918082bfd Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Fri, 22 Nov 2013 19:55:11 +0100 Subject: Add tests for redirects panel. Also simplify the implementation. --- debug_toolbar/panels/redirects.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'debug_toolbar') diff --git a/debug_toolbar/panels/redirects.py b/debug_toolbar/panels/redirects.py index b743a65..605dde3 100644 --- a/debug_toolbar/panels/redirects.py +++ b/debug_toolbar/panels/redirects.py @@ -1,7 +1,6 @@ from __future__ import unicode_literals from django.core.handlers.wsgi import STATUS_CODE_TEXT -from django.http import HttpResponseRedirect from django.shortcuts import render from django.utils.translation import ugettext as _ @@ -22,14 +21,15 @@ class InterceptRedirectsPanel(DebugPanel): return self.toolbar.request.COOKIES.get('djdt' + self.panel_id, default) == 'on' def process_response(self, request, response): - if isinstance(response, HttpResponseRedirect): + if 300 <= int(response.status_code) < 400: redirect_to = response.get('Location', None) if redirect_to: - try: - status_text = STATUS_CODE_TEXT[response.status_code] - except KeyError: - status_text = 'UNKNOWN STATUS CODE' - status_line = '%s %s' % (response.status_code, status_text.title()) + try: # Django >= 1.6 + reason_phrase = response.reason_phrase + except AttributeError: + reason_phrase = STATUS_CODE_TEXT.get(response.status_code, + 'UNKNOWN STATUS CODE') + 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) -- cgit v1.2.3