From 2dc7db4730fb9763931ad0a7449732d0797959b9 Mon Sep 17 00:00:00 2001 From: Eric Hansen Date: Tue, 11 Sep 2012 15:40:16 -0400 Subject: [PATCH] Fixed issue with empty proxies being passed --- requests/models.py | 4 ++++ tests/test_proxies.py | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 tests/test_proxies.py diff --git a/requests/models.py b/requests/models.py index 031efee3..0ef30251 100644 --- a/requests/models.py +++ b/requests/models.py @@ -111,6 +111,10 @@ class Request(object): # Dictionary mapping protocol to the URL of the proxy (e.g. {'http': 'foo.bar:3128'}) self.proxies = dict(proxies or []) + for proxy_type,uri_ref in self.proxies.items(): + if not uri_ref: + del self.proxies[proxy_type] + # If no proxies are given, allow configuration by environment variables # HTTP_PROXY and HTTPS_PROXY. if not self.proxies and self.config.get('trust_env'): diff --git a/tests/test_proxies.py b/tests/test_proxies.py new file mode 100644 index 00000000..8ab124b2 --- /dev/null +++ b/tests/test_proxies.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import sys, os, unittest + +# Path hack. +sys.path.insert(0, os.path.abspath('..')) +import requests + + +class HTTPSProxyTest(unittest.TestCase): + """Smoke test for https functionality.""" + + smoke_url = "https://github.com" + + def test_empty_https_proxy(self): + proxy = {"https" : "" } + result = requests.get(self.smoke_url, verify=False, proxies = proxy) + self.assertEqual(result.status_code, 200) + + def test_empty_http_proxy(self): + proxy = {"http" : "" } + result = requests.get(self.smoke_url, proxies = proxy) + self.assertEqual(result.status_code, 200) + +if __name__ == '__main__': + unittest.main()