[Python-checkins] r87799 - in python/branches/release27-maint: Lib/test/test_wsgiref.py Lib/wsgiref/handlers.py Misc/ACKS Misc/NEWS
antoine.pitrou
python-checkins at python.org
Thu Jan 6 18:19:05 CET 2011
Author: antoine.pitrou
Date: Thu Jan 6 18:19:05 2011
New Revision: 87799
Log:
Merged revisions 87797 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r87797 | antoine.pitrou | 2011-01-06 18:17:04 +0100 (jeu., 06 janv. 2011) | 4 lines
Issue #3839: wsgiref should not override a Content-Length header set by
the application. Initial patch by Clovis Fabricio.
........
Modified:
python/branches/release27-maint/ (props changed)
python/branches/release27-maint/Lib/test/test_wsgiref.py
python/branches/release27-maint/Lib/wsgiref/handlers.py
python/branches/release27-maint/Misc/ACKS
python/branches/release27-maint/Misc/NEWS
Modified: python/branches/release27-maint/Lib/test/test_wsgiref.py
==============================================================================
--- python/branches/release27-maint/Lib/test/test_wsgiref.py (original)
+++ python/branches/release27-maint/Lib/test/test_wsgiref.py Thu Jan 6 18:19:05 2011
@@ -481,6 +481,11 @@
s('200 OK',[])(e['wsgi.url_scheme'])
return []
+ def trivial_app4(e,s):
+ # Simulate a response to a HEAD request
+ s('200 OK',[('Content-Length', '12345')])
+ return []
+
h = TestHandler()
h.run(trivial_app1)
self.assertEqual(h.stdout.getvalue(),
@@ -497,10 +502,12 @@
"http")
-
-
-
-
+ h = TestHandler()
+ h.run(trivial_app4)
+ self.assertEqual(h.stdout.getvalue(),
+ b'Status: 200 OK\r\n'
+ b'Content-Length: 12345\r\n'
+ b'\r\n')
def testBasicErrorOutput(self):
Modified: python/branches/release27-maint/Lib/wsgiref/handlers.py
==============================================================================
--- python/branches/release27-maint/Lib/wsgiref/handlers.py (original)
+++ python/branches/release27-maint/Lib/wsgiref/handlers.py Thu Jan 6 18:19:05 2011
@@ -240,7 +240,9 @@
def finish_content(self):
"""Ensure headers and content have both been sent"""
if not self.headers_sent:
- self.headers['Content-Length'] = "0"
+ # Only zero Content-Length if not set by the application (so
+ # that HEAD requests can be satisfied properly, see #3839)
+ self.headers.setdefault('Content-Length', "0")
self.send_headers()
else:
pass # XXX check if content-length was too short?
Modified: python/branches/release27-maint/Misc/ACKS
==============================================================================
--- python/branches/release27-maint/Misc/ACKS (original)
+++ python/branches/release27-maint/Misc/ACKS Thu Jan 6 18:19:05 2011
@@ -242,6 +242,7 @@
David Everly
Greg Ewing
Martijn Faassen
+Clovis Fabricio
Andreas Faerber
Bill Fancher
Troy J. Farrell
Modified: python/branches/release27-maint/Misc/NEWS
==============================================================================
--- python/branches/release27-maint/Misc/NEWS (original)
+++ python/branches/release27-maint/Misc/NEWS Thu Jan 6 18:19:05 2011
@@ -25,6 +25,9 @@
Library
-------
+- Issue #3839: wsgiref should not override a Content-Length header set by
+ the application. Initial patch by Clovis Fabricio.
+
- Issue #10806, issue #9905: Fix subprocess pipes when some of the standard
file descriptors (0, 1, 2) are closed in the parent process. Initial
patch by Ross Lagerwall.
More information about the Python-checkins
mailing list