From 89976f1cdc49c909f808f8bb1ec15ac963acbc93 Mon Sep 17 00:00:00 2001 From: Senthil Kumaran Date: Sat, 6 Aug 2011 12:27:40 +0800 Subject: [PATCH] Fix closes issue12698 - make the no_proxy environment variable handling a bit lenient (accomodate spaces in between the items) --- Lib/test/test_urllib.py | 4 +++- Lib/urllib/request.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py index 3a806bff167..ac023740ce6 100644 --- a/Lib/test/test_urllib.py +++ b/Lib/test/test_urllib.py @@ -135,7 +135,9 @@ class ProxyTests(unittest.TestCase): proxies = urllib.request.getproxies_environment() # getproxies_environment use lowered case truncated (no '_proxy') keys self.assertEqual('localhost', proxies['no']) - + # List of no_proxies with space. + self.env.set('NO_PROXY', 'localhost, anotherdomain.com, newdomain.com') + self.assertTrue(urllib.request.proxy_bypass_environment('anotherdomain.com')) class urlopen_HttpTests(unittest.TestCase): """Test urlopen() opening a fake http connection.""" diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 1dda966a23b..773025a09b3 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -2265,7 +2265,8 @@ def proxy_bypass_environment(host): # strip port off host hostonly, port = splitport(host) # check if the host ends with any of the DNS suffixes - for name in no_proxy.split(','): + no_proxy_list = [proxy.strip() for proxy in no_proxy.split(',')] + for name in no_proxy_list: if name and (hostonly.endswith(name) or host.endswith(name)): return 1 # otherwise, don't bypass