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.
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
index 8b9435a..a4af01a 100644
--- a/Lib/test/test_urllib2net.py
+++ b/Lib/test/test_urllib2net.py
@@ -156,6 +156,18 @@
self.assertEqual(res.geturl(),
"http://docs.python.org/glossary.html")
+ def test_custom_headers(self):
+ url = "http://www.example.com"
+ opener = urllib.request.build_opener()
+ request = urllib.request.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