kopia lustrzana https://github.com/wagtail/wagtail
Fix SERVER_PORT for Page.dummy_request() when page is attached to Site with 443 port. (#4950)
rodzic
056096c2de
commit
5f7b7230a2
|
@ -4,6 +4,8 @@ Changelog
|
|||
2.5 (xx.xx.xxxx) - IN DEVELOPMENT
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
* Fix: Set `SERVER_PORT` to 443 in `Page.dummy_request()` for HTTPS sites (Sergey Fedoseev)
|
||||
|
||||
|
||||
2.4 (xx.xx.xxxx) - IN DEVELOPMENT
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
|
|
@ -18,6 +18,8 @@ Other features
|
|||
Bug fixes
|
||||
~~~~~~~~~
|
||||
|
||||
* Set ``SERVER_PORT`` to 443 in ``Page.dummy_request()`` for HTTPS sites (Sergey Fedoseev)
|
||||
|
||||
|
||||
Upgrade considerations
|
||||
======================
|
||||
|
|
|
@ -1215,7 +1215,7 @@ class Page(AbstractPage, index.Indexed, ClusterableModel, metaclass=PageBase):
|
|||
url_info = urlparse(url)
|
||||
hostname = url_info.hostname
|
||||
path = url_info.path
|
||||
port = url_info.port or 80
|
||||
port = url_info.port or (443 if url_info.scheme == 'https' else 80)
|
||||
scheme = url_info.scheme
|
||||
else:
|
||||
# Cannot determine a URL to this page - cobble one together based on
|
||||
|
|
|
@ -1364,6 +1364,31 @@ class TestDummyRequest(TestCase):
|
|||
self.assertIn('wsgi.multiprocess', request.META)
|
||||
self.assertIn('wsgi.run_once', request.META)
|
||||
|
||||
def test_dummy_request_for_accessible_page_https(self):
|
||||
Site.objects.update(port=443)
|
||||
|
||||
event_index = Page.objects.get(url_path='/home/events/')
|
||||
request = event_index.dummy_request()
|
||||
|
||||
# request should have the correct path and hostname for this page
|
||||
self.assertEqual(request.path, '/events/')
|
||||
self.assertEqual(request.META['HTTP_HOST'], 'localhost')
|
||||
|
||||
# check other env vars required by the WSGI spec
|
||||
self.assertEqual(request.META['REQUEST_METHOD'], 'GET')
|
||||
self.assertEqual(request.META['SCRIPT_NAME'], '')
|
||||
self.assertEqual(request.META['PATH_INFO'], '/events/')
|
||||
self.assertEqual(request.META['SERVER_NAME'], 'localhost')
|
||||
self.assertEqual(request.META['SERVER_PORT'], 443)
|
||||
self.assertEqual(request.META['SERVER_PROTOCOL'], 'HTTP/1.1')
|
||||
self.assertEqual(request.META['wsgi.version'], (1, 0))
|
||||
self.assertEqual(request.META['wsgi.url_scheme'], 'https')
|
||||
self.assertIn('wsgi.input', request.META)
|
||||
self.assertIn('wsgi.errors', request.META)
|
||||
self.assertIn('wsgi.multithread', request.META)
|
||||
self.assertIn('wsgi.multiprocess', request.META)
|
||||
self.assertIn('wsgi.run_once', request.META)
|
||||
|
||||
def test_dummy_request_for_accessible_page_with_original_request(self):
|
||||
event_index = Page.objects.get(url_path='/home/events/')
|
||||
original_headers = {
|
||||
|
|
Ładowanie…
Reference in New Issue