From 01993d21dc7d6fa8f0acf657425d2fead9b2ddea Mon Sep 17 00:00:00 2001 From: Viktor Haag Date: Fri, 24 May 2013 16:14:14 -0400 Subject: [PATCH] added tests for mixed-case scheme URLs, changed adapters passing down URLs into urllib3 by lower-ifying them so that the underlying pool manager can effectively pool by scheme as dictionary key --- requests/adapters.py | 6 +++--- test_requests.py | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/requests/adapters.py b/requests/adapters.py index b4f5bf6..7b4916c 100644 --- a/requests/adapters.py +++ b/requests/adapters.py @@ -190,13 +190,13 @@ class HTTPAdapter(BaseAdapter): :param proxies: (optional) A Requests-style dictionary of proxies used on this request. """ proxies = proxies or {} - proxy = proxies.get(urlparse(url).scheme) + proxy = proxies.get(urlparse(url.lower()).scheme) if proxy: - proxy = prepend_scheme_if_needed(proxy, urlparse(url).scheme) + proxy = prepend_scheme_if_needed(proxy, urlparse(url.lower()).scheme) conn = ProxyManager(self.poolmanager.connection_from_url(proxy)) else: - conn = self.poolmanager.connection_from_url(url) + conn = self.poolmanager.connection_from_url(url.lower()) return conn diff --git a/test_requests.py b/test_requests.py index 3600600..a346334 100755 --- a/test_requests.py +++ b/test_requests.py @@ -89,22 +89,29 @@ class RequestsTestCase(unittest.TestCase): def test_mixed_case_scheme_acceptable(self): s = requests.Session() - r = requests.Request('GET', 'HTTP://httbin.org/get') + r = requests.Request('GET', 'http://httpbin.org/get') r = s.send(r.prepare()) self.assertEqual(r.status_code,200) - r = requests.Request('GET', 'hTTp://httbin.org/get') + s = requests.Session() + r = requests.Request('GET', 'HTTP://httpbin.org/get') + r = s.send(r.prepare()) + self.assertEqual(r.status_code,200) + r = requests.Request('GET', 'hTTp://httpbin.org/get') + r = s.send(r.prepare()) + self.assertEqual(r.status_code,200) + r = requests.Request('GET', 'HttP://httpbin.org/get') r = s.send(r.prepare()) self.assertEqual(r.status_code,200) - r = requests.Request('GET', 'HttP://httbin.org/get') + r = requests.Request('GET', 'https://httpbin.org/get') r = s.send(r.prepare()) self.assertEqual(r.status_code,200) - r = requests.Request('GET', 'HTTPS://httbin.org/get') + r = requests.Request('GET', 'HTTPS://httpbin.org/get') r = s.send(r.prepare()) self.assertEqual(r.status_code,200) - r = requests.Request('GET', 'hTTps://httbin.org/get') + r = requests.Request('GET', 'hTTps://httpbin.org/get') r = s.send(r.prepare()) self.assertEqual(r.status_code,200) - r = requests.Request('GET', 'HttPs://httbin.org/get') + r = requests.Request('GET', 'HttPs://httpbin.org/get') r = s.send(r.prepare()) self.assertEqual(r.status_code,200) -- 2.7.4