[Python-checkins] r85027 - in python/branches/release27-maint: Lib/test/test_urllib2net.py Lib/urllib2.py
senthil.kumaran
python-checkins at python.org
Mon Sep 27 03:40:59 CEST 2010
Author: senthil.kumaran
Date: Mon Sep 27 03:40:59 2010
New Revision: 85027
Log:
Merged revisions 85025 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r85025 | senthil.kumaran | 2010-09-27 06:56:03 +0530 (Mon, 27 Sep 2010) | 6 lines
Fix Issue1595365 - Adding the req.headers after the un-redirect headers have
been added. This helps in accidental overwritting of User-Agent header to
default value. To preserve the old behavior, only headers not in unredirected
headers will be updated.
........
Modified:
python/branches/release27-maint/ (props changed)
python/branches/release27-maint/Lib/test/test_urllib2net.py
python/branches/release27-maint/Lib/urllib2.py
Modified: python/branches/release27-maint/Lib/test/test_urllib2net.py
==============================================================================
--- python/branches/release27-maint/Lib/test/test_urllib2net.py (original)
+++ python/branches/release27-maint/Lib/test/test_urllib2net.py Mon Sep 27 03:40:59 2010
@@ -172,6 +172,18 @@
finally:
res.close()
+ def test_custom_headers(self):
+ url = "http://www.example.com"
+ opener = urllib2.build_opener()
+ request = urllib2.Request(url)
+ self.assertFalse(request.header_items())
+ opener.open(request)
+ self.assertTrue(request.header_items())
+ self.assertTrue(request.has_header('User-agent'))
+ request.add_header('User-Agent','Test-Agent')
+ opener.open(request)
+ self.assertEqual(request.get_header('User-agent'),'Test-Agent')
+
def _test_urls(self, urls, handlers, retry=True):
import time
import logging
Modified: python/branches/release27-maint/Lib/urllib2.py
==============================================================================
--- python/branches/release27-maint/Lib/urllib2.py (original)
+++ python/branches/release27-maint/Lib/urllib2.py Mon Sep 27 03:40:59 2010
@@ -1127,8 +1127,10 @@
h = http_class(host, timeout=req.timeout) # will parse host:port
h.set_debuglevel(self._debuglevel)
- headers = dict(req.headers)
- headers.update(req.unredirected_hdrs)
+ headers = dict(req.unredirected_hdrs)
+ headers.update(dict((k, v) for k, v in req.headers.items()
+ if k not in headers))
+
# We want to make an HTTP/1.1 request, but the addinfourl
# class isn't prepared to deal with a persistent connection.
# It will try to read all remaining data from the socket,
More information about the Python-checkins
mailing list