0
0
mirror of https://github.com/django/django.git synced 2024-12-01 15:42:04 +01:00

Merge pull request #3072 from collinanderson/23295

Fixed #23295 -- Removed unnecessary fix_location_header request.get_host() check
This commit is contained in:
Carl Meyer 2014-08-15 17:21:01 -06:00
commit 9fef66ef7c
2 changed files with 14 additions and 3 deletions

View File

@ -17,7 +17,7 @@ def fix_location_header(request, response):
Code constructing response objects is free to insert relative paths, as Code constructing response objects is free to insert relative paths, as
this function converts them to absolute paths. this function converts them to absolute paths.
""" """
if 'Location' in response and request.get_host(): if 'Location' in response:
response['Location'] = request.build_absolute_uri(response['Location']) response['Location'] = request.build_absolute_uri(response['Location'])
return response return response

View File

@ -3,8 +3,8 @@ from __future__ import unicode_literals
import io import io
import gzip import gzip
from django.http import HttpRequest, HttpResponse, StreamingHttpResponse from django.http import HttpRequest, HttpResponse, HttpResponseRedirect, StreamingHttpResponse
from django.http.utils import conditional_content_removal from django.http.utils import conditional_content_removal, fix_location_header
from django.test import TestCase from django.test import TestCase
@ -69,3 +69,14 @@ class HttpUtilTests(TestCase):
res = StreamingHttpResponse(['abc']) res = StreamingHttpResponse(['abc'])
conditional_content_removal(req, res) conditional_content_removal(req, res)
self.assertEqual(b''.join(res), b'') self.assertEqual(b''.join(res), b'')
def test_fix_location_without_get_host(self):
"""
Tests that you can return an absolute redirect when the request
host is not in ALLOWED_HOSTS. Issue #20472
"""
request = HttpRequest()
def bomb():
self.assertTrue(False)
request.get_host = bomb
fix_location_header(request, HttpResponseRedirect('http://example.com'))