Skip to content

Commit 2dbce79

Browse files
fix: Update connection manager creation (#864)
1 parent d988f3c commit 2dbce79

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

appium/webdriver/appium_connection.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626

2727
class AppiumConnection(RemoteConnection):
28+
_proxy_url: Optional[str]
29+
2830
def __init__(
2931
self,
3032
remote_server_addr: str,
@@ -39,7 +41,7 @@ def __init__(
3941

4042
def _get_connection_manager(self) -> Union[urllib3.PoolManager, urllib3.ProxyManager]:
4143
# https://github.com/SeleniumHQ/selenium/blob/0e0194b0e52a34e7df4b841f1ed74506beea5c3e/py/selenium/webdriver/remote/remote_connection.py#L134
42-
pool_manager_init_args = {'timeout': self._timeout}
44+
pool_manager_init_args = {'timeout': self.get_timeout()}
4345

4446
if self._ca_certs:
4547
pool_manager_init_args['cert_reqs'] = 'CERT_REQUIRED'
@@ -50,11 +52,17 @@ def _get_connection_manager(self) -> Union[urllib3.PoolManager, urllib3.ProxyMan
5052

5153
pool_manager_init_args.update(self._init_args_for_pool_manager)
5254

53-
return (
54-
urllib3.PoolManager(**pool_manager_init_args)
55-
if self._proxy_url is None
56-
else urllib3.ProxyManager(self._proxy_url, **pool_manager_init_args)
57-
)
55+
if self._proxy_url:
56+
if self._proxy_url.lower().startswith('sock'):
57+
from urllib3.contrib.socks import SOCKSProxyManager
58+
59+
return SOCKSProxyManager(self._proxy_url, **pool_manager_init_args)
60+
if self._identify_http_proxy_auth():
61+
self._proxy_url, self._basic_proxy_auth = self._separate_http_proxy_auth()
62+
pool_manager_init_args['proxy_headers'] = urllib3.make_headers(proxy_basic_auth=self._basic_proxy_auth)
63+
return urllib3.ProxyManager(self._proxy_url, **pool_manager_init_args)
64+
65+
return urllib3.PoolManager(**pool_manager_init_args)
5866

5967
@classmethod
6068
def get_remote_connection_headers(cls, parsed_url: 'ParseResult', keep_alive: bool = True) -> Dict[str, Any]:

0 commit comments

Comments
 (0)