def test_connect_does_not_use_socks_proxy(self, mock_set_tunnel, mock_connect, mock_socks): conn = ProxyAwareHTTPSConnection(self.config, 'example.com') conn.connect() assert mock_socks._create_connection.call_count == 0 mock_connect.assert_called_once_with()
def test_raises_exception_when_invalid_socks_scheme(self, mock_socks): conf = namedtuple('ProxyConf', 'scheme username password hostport') self.config = { 'https': conf(*_parse_proxy('socks6://socks_user:socks_pass@socks_host:3128')), 'no_proxy': 'localhost,127.0.0.1,dev_server:8080' } conn = ProxyAwareHTTPSConnection(self.config, 'example.com', context=Mock()) with self.assertRaises(TypeError): conn.connect()
def test_connect_uses_socks4_proxy(self, mock_socks): conf = namedtuple('ProxyConf', 'scheme username password hostport') self.config = { 'https': conf(*_parse_proxy( 'socks4://socks_user:socks_pass@socks_host:3128')), 'no_proxy': 'localhost,127.0.0.1,dev_server:8080' } mock_socks.PROXY_TYPE_SOCKS4 = socks.PROXY_TYPE_SOCKS4 conn = ProxyAwareHTTPSConnection(self.config, 'example.com', context=Mock()) conn.connect() mock_socks.create_connection.assert_called_once_with( ('example.com', 443), socket._GLOBAL_DEFAULT_TIMEOUT, None, socks.PROXY_TYPE_SOCKS4, 'socks_host', 3128, False, 'socks_user', 'socks_pass', ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1), ))