]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
#3879 fix a regression in urllib.getproxies_environment
authorBenjamin Peterson <benjamin@python.org>
Sun, 21 Sep 2008 21:27:51 +0000 (21:27 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sun, 21 Sep 2008 21:27:51 +0000 (21:27 +0000)
reviewers: Benjamin, Georg

Lib/test/test_urllib.py
Lib/urllib.py
Misc/NEWS

index 7b351b8996b4f79af10e0118a9b50ed9e523cff1..b78f30a136307228e5f397ea57178dbad14de28f 100644 (file)
@@ -94,6 +94,31 @@ class urlopen_FileTests(unittest.TestCase):
         for line in self.returned_obj.__iter__():
             self.assertEqual(line, self.text)
 
+
+class ProxyTests(unittest.TestCase):
+
+    def setUp(self):
+        unittest.TestCase.setUp(self)
+        # Save all proxy related env vars
+        self._saved_environ = dict([(k, v) for k, v in os.environ.iteritems()
+                                    if k.lower().find('proxy') >= 0])
+        # Delete all proxy related env vars
+        for k in self._saved_environ:
+            del os.environ[k]
+
+    def tearDown(self):
+        unittest.TestCase.tearDown(self)
+        # Restore all proxy related env vars
+        for k, v in self._saved_environ:
+            os.environ[k] = v
+
+    def test_getproxies_environment_keep_no_proxies(self):
+        os.environ['NO_PROXY'] = 'localhost'
+        proxies = urllib.getproxies_environment()
+        # getproxies_environment use lowered case truncated (no '_proxy') keys
+        self.assertEquals('localhost', proxies['no'])
+
+
 class urlopen_HttpTests(unittest.TestCase):
     """Test urlopen() opening a fake http connection."""
 
@@ -648,6 +673,7 @@ def test_main():
             urlopen_FileTests,
             urlopen_HttpTests,
             urlretrieve_FileTests,
+            ProxyTests,
             QuotingTests,
             UnquotingTests,
             urlencode_Tests,
index 55a29f4fc8cd689b354f7087e219328836f51d67..38c5ee49f11754ab5d9b50f2524bfcea29a09fa7 100644 (file)
@@ -1299,9 +1299,6 @@ def getproxies_environment():
     proxies = {}
     for name, value in os.environ.items():
         name = name.lower()
-        if name == 'no_proxy':
-            # handled in proxy_bypass_environment
-            continue
         if value and name[-6:] == '_proxy':
             proxies[name[:-6]] = value
     return proxies
index d6cceb19f7282a16bba2e35e1e168a3796548620..0c222331c598a835d8f0e41fecd25ad38d59f681 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #3879: A regression in urllib.getproxies_enviroment was fixed.
+
 Build
 -----