Added support to ProxyInfo object for detection of proxy from environment variables
diff --git a/python2/httplib2test.py b/python2/httplib2test.py
index 675fe66..bcfc073 100755
--- a/python2/httplib2test.py
+++ b/python2/httplib2test.py
@@ -1552,5 +1552,50 @@
end2end = httplib2._get_end2end_headers(response)
self.assertEquals(0, len(end2end))
+
+class TestProxyInfo(unittest.TestCase):
+ def setUp(self):
+ self.orig_env = dict(os.environ)
+
+ def tearDown(self):
+ os.environ.clear()
+ os.environ.update(self.orig_env)
+
+ def test_from_url(self):
+ pi = httplib2.ProxyInfo.from_url('http://myproxy.example.com')
+ self.assertEquals(pi.proxy_host, 'myproxy.example.com')
+ self.assertEquals(pi.proxy_port, 80)
+ self.assertEquals(pi.proxy_user, None)
+
+ def test_from_url_ident(self):
+ pi = httplib2.ProxyInfo.from_url('http://zoidberg:fish@someproxy:99')
+ self.assertEquals(pi.proxy_host, 'someproxy')
+ self.assertEquals(pi.proxy_port, 99)
+ self.assertEquals(pi.proxy_user, 'zoidberg')
+ self.assertEquals(pi.proxy_pass, 'fish')
+
+ def test_from_env(self):
+ os.environ['http_proxy'] = 'http://myproxy.example.com:8080'
+ pi = httplib2.ProxyInfo.from_environment()
+ self.assertEquals(pi.proxy_host, 'myproxy.example.com')
+ self.assertEquals(pi.proxy_port, 8080)
+ self.assertEquals(pi.bypass_hosts, [])
+
+ def test_from_env_no_proxy(self):
+ os.environ['http_proxy'] = 'http://myproxy.example.com:80'
+ os.environ['https_proxy'] = 'http://myproxy.example.com:81'
+ os.environ['no_proxy'] = 'localhost,otherhost.domain.local'
+ pi = httplib2.ProxyInfo.from_environment('https')
+ self.assertEquals(pi.proxy_host, 'myproxy.example.com')
+ self.assertEquals(pi.proxy_port, 81)
+ self.assertEquals(pi.bypass_hosts, ['localhost',
+ 'otherhost.domain.local'])
+
+ def test_from_env_none(self):
+ os.environ.clear()
+ pi = httplib2.ProxyInfo.from_environment()
+ self.assertEquals(pi, None)
+
+
if __name__ == '__main__':
unittest.main()