]> granicus.if.org Git - python/commitdiff
bpo-25068: urllib.request.ProxyHandler now lowercases the dict keys (GH-13489)
authorZackery Spytz <zspytz@gmail.com>
Fri, 13 Sep 2019 14:07:07 +0000 (08:07 -0600)
committerStéphane Wirtel <stephane@wirtel.be>
Fri, 13 Sep 2019 14:07:07 +0000 (15:07 +0100)
Lib/test/test_urllib2.py
Lib/urllib/request.py
Misc/NEWS.d/next/Library/2019-05-22-04-52-35.bpo-25068.vR_rC-.rst [new file with mode: 0644]

index c228fa7d1dc12d9cff2ab2ce4912c755fed79ebe..186a96765971ad667a6c0c00f726c0f32a3b13ba 100644 (file)
@@ -1342,21 +1342,22 @@ class HandlerTests(unittest.TestCase):
                 self.assertTrue(request.startswith(expected), repr(request))
 
     def test_proxy(self):
-        o = OpenerDirector()
-        ph = urllib.request.ProxyHandler(dict(http="proxy.example.com:3128"))
-        o.add_handler(ph)
-        meth_spec = [
-            [("http_open", "return response")]
-            ]
-        handlers = add_ordered_mock_handlers(o, meth_spec)
-
-        req = Request("http://acme.example.com/")
-        self.assertEqual(req.host, "acme.example.com")
-        o.open(req)
-        self.assertEqual(req.host, "proxy.example.com:3128")
-
-        self.assertEqual([(handlers[0], "http_open")],
-                         [tup[0:2] for tup in o.calls])
+        u = "proxy.example.com:3128"
+        for d in dict(http=u), dict(HTTP=u):
+            o = OpenerDirector()
+            ph = urllib.request.ProxyHandler(d)
+            o.add_handler(ph)
+            meth_spec = [
+                [("http_open", "return response")]
+                ]
+            handlers = add_ordered_mock_handlers(o, meth_spec)
+
+            req = Request("http://acme.example.com/")
+            self.assertEqual(req.host, "acme.example.com")
+            o.open(req)
+            self.assertEqual(req.host, u)
+            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'
index 267a90dd80db29f55408c10017536ad0efc2296c..721c152179e998dbd94fd4d9a59d8606bb692407 100644 (file)
@@ -792,6 +792,7 @@ class ProxyHandler(BaseHandler):
         assert hasattr(proxies, 'keys'), "proxies must be a mapping"
         self.proxies = proxies
         for type, url in proxies.items():
+            type = type.lower()
             setattr(self, '%s_open' % type,
                     lambda r, proxy=url, type=type, meth=self.proxy_open:
                         meth(r, proxy, type))
diff --git a/Misc/NEWS.d/next/Library/2019-05-22-04-52-35.bpo-25068.vR_rC-.rst b/Misc/NEWS.d/next/Library/2019-05-22-04-52-35.bpo-25068.vR_rC-.rst
new file mode 100644 (file)
index 0000000..89de83b
--- /dev/null
@@ -0,0 +1,2 @@
+:class:`urllib.request.ProxyHandler` now lowercases the keys of the passed
+dictionary.