mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #27606 -- Fixed HttpResponseRedirect.__repr__() crash when DisallowedRedirect is raised.
This commit is contained in:
parent
6af23a4521
commit
a849ec1880
2 changed files with 14 additions and 3 deletions
|
@ -8,7 +8,7 @@ import pickle
|
|||
import unittest
|
||||
import uuid
|
||||
|
||||
from django.core.exceptions import SuspiciousOperation
|
||||
from django.core.exceptions import DisallowedRedirect, SuspiciousOperation
|
||||
from django.core.serializers.json import DjangoJSONEncoder
|
||||
from django.core.signals import request_finished
|
||||
from django.db import close_old_connections
|
||||
|
@ -517,6 +517,17 @@ class HttpResponseSubclassesTests(SimpleTestCase):
|
|||
expected = '<HttpResponseRedirect status_code=302, "text/html; charset=utf-8", url="/redirected/">'
|
||||
self.assertEqual(repr(response), expected)
|
||||
|
||||
def test_invalid_redirect_repr(self):
|
||||
"""
|
||||
If HttpResponseRedirect raises DisallowedRedirect, its __repr__()
|
||||
should work (in the debug view, for example).
|
||||
"""
|
||||
response = HttpResponseRedirect.__new__(HttpResponseRedirect)
|
||||
with self.assertRaisesMessage(DisallowedRedirect, "Unsafe redirect to URL with protocol 'ssh'"):
|
||||
HttpResponseRedirect.__init__(response, 'ssh://foo')
|
||||
expected = '<HttpResponseRedirect status_code=302, "text/html; charset=utf-8", url="ssh://foo">'
|
||||
self.assertEqual(repr(response), expected)
|
||||
|
||||
def test_not_modified(self):
|
||||
response = HttpResponseNotModified()
|
||||
self.assertEqual(response.status_code, 304)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue