summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSenthil Kumaran <orsenthil@gmail.com>2009-10-11 06:07:46 (GMT)
committerSenthil Kumaran <orsenthil@gmail.com>2009-10-11 06:07:46 (GMT)
commit1130163dc1a1e278e56ce4316da109e234269f3e (patch)
tree698acddbd8ff147526022d4f5c9dc20ab20783fe
parent290e939f2e22d459d7e22f39e6a5660a8a2f4e96 (diff)
downloadcpython-1130163dc1a1e278e56ce4316da109e234269f3e.zip
cpython-1130163dc1a1e278e56ce4316da109e234269f3e.tar.gz
cpython-1130163dc1a1e278e56ce4316da109e234269f3e.tar.bz2
Merged revisions 75334 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r75334 | senthil.kumaran | 2009-10-11 10:28:55 +0530 (Sun, 11 Oct 2009) | 9 lines Merged revisions 75333 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r75333 | senthil.kumaran | 2009-10-11 07:30:07 +0530 (Sun, 11 Oct 2009) | 3 lines Fixed Issue6894, urllib2 doesn't respect "no_proxy" environment ........ ................
-rw-r--r--Lib/test/test_urllib2.py16
-rw-r--r--Lib/urllib/request.py4
-rw-r--r--Misc/NEWS2
3 files changed, 22 insertions, 0 deletions
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 8093f0e..f1c478c 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -947,6 +947,22 @@ class HandlerTests(unittest.TestCase):
self.assertEqual([(handlers[0], "http_open")],
[tup[0:2] for tup in o.calls])
+ def test_proxy_no_proxy(self):
+ os.environ['no_proxy'] = 'python.org'
+ o = OpenerDirector()
+ ph = urllib.request.ProxyHandler(dict(http="proxy.example.com"))
+ o.add_handler(ph)
+ req = Request("http://www.perl.org/")
+ self.assertEqual(req.get_host(), "www.perl.org")
+ r = o.open(req)
+ self.assertEqual(req.get_host(), "proxy.example.com")
+ req = Request("http://www.python.org")
+ self.assertEqual(req.get_host(), "www.python.org")
+ r = o.open(req)
+ self.assertEqual(req.get_host(), "www.python.org")
+ del os.environ['no_proxy']
+
+
def test_proxy_https(self):
o = OpenerDirector()
ph = urllib.request.ProxyHandler(dict(https="proxy.example.com:3128"))
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index f787407..9f7ebd7 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -657,6 +657,10 @@ class ProxyHandler(BaseHandler):
proxy_type, user, password, hostport = _parse_proxy(proxy)
if proxy_type is None:
proxy_type = orig_type
+
+ if req.host and proxy_bypass(req.host):
+ return None
+
if user and password:
user_pass = '%s:%s' % (unquote(user),
unquote(password))
diff --git a/Misc/NEWS b/Misc/NEWS
index 49e7d1a..f6660a1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,8 @@ Core and Builtins
Library
-------
+- Issue #6894: Fixed the issue urllib2 doesn't respect "no_proxy" environment
+
- Issue #7082: When falling back to the MIME 'name' parameter, the
correct place to look for it is the Content-Type header.