py3 connection class did not initialize .proxy_info attribute
https://github.com/httplib2/httplib2/pull/97
diff --git a/python3/httplib2/__init__.py b/python3/httplib2/__init__.py
index 04f9c5e..deb7168 100644
--- a/python3/httplib2/__init__.py
+++ b/python3/httplib2/__init__.py
@@ -886,11 +886,9 @@
http.client.HTTPConnection.__init__(self, host, port=port,
timeout=timeout)
- if proxy_info:
- if isinstance(proxy_info, ProxyInfo):
- self.proxy_info = proxy_info
- else:
- self.proxy_info = proxy_info('http')
+ self.proxy_info = proxy_info
+ if proxy_info and not isinstance(proxy_info, ProxyInfo):
+ self.proxy_info = proxy_info('http')
def connect(self):
"""Connect to the host and port specified in __init__."""
@@ -967,11 +965,9 @@
self.disable_ssl_certificate_validation = disable_ssl_certificate_validation
self.ca_certs = ca_certs if ca_certs else CA_CERTS
- if proxy_info:
- if isinstance(proxy_info, ProxyInfo):
- self.proxy_info = proxy_info
- else:
- self.proxy_info = proxy_info('https')
+ self.proxy_info = proxy_info
+ if proxy_info and not isinstance(proxy_info, ProxyInfo):
+ self.proxy_info = proxy_info('https')
context = _build_ssl_context(self.disable_ssl_certificate_validation, self.ca_certs, cert_file, key_file)
super(HTTPSConnectionWithTimeout, self).__init__(host, port=port, key_file=key_file, cert_file=cert_file,
diff --git a/python3/httplib2test.py b/python3/httplib2test.py
index a0dca80..a4afae9 100755
--- a/python3/httplib2test.py
+++ b/python3/httplib2test.py
@@ -1630,5 +1630,11 @@
pi = httplib2.ProxyInfo(httplib2.socks.PROXY_TYPE_HTTP, 'localhost', 1234, proxy_headers = headers)
self.assertEqual(pi.proxy_headers, headers)
+ # regression: ensure that httplib2.HTTPConnectionWithTimeout initializes when proxy_info is not supplied
+ def test_proxy_init(self):
+ connection = httplib2.HTTPConnectionWithTimeout('www.google.com', 80)
+ connection.request('GET', '/')
+ connection.close()
+
if __name__ == '__main__':
unittest.main()