Skip to content

Commit

Permalink
Enable locking in websocket-client package (#170)
Browse files Browse the repository at this point in the history
  • Loading branch information
miguelgrinberg committed May 22, 2020
1 parent e4d9c33 commit f7bbd97
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
14 changes: 6 additions & 8 deletions engineio/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -369,15 +369,13 @@ def _connect_websocket(self, url, headers, engineio_path):
del headers[header]
break

extra_options = {}
if not self.ssl_verify:
extra_options['sslopt'] = {"cert_reqs": ssl.CERT_NONE}
try:
if not self.ssl_verify:
ws = websocket.create_connection(
websocket_url + self._get_url_timestamp(), header=headers,
cookie=cookies, sslopt={"cert_reqs": ssl.CERT_NONE})
else:
ws = websocket.create_connection(
websocket_url + self._get_url_timestamp(), header=headers,
cookie=cookies)
ws = websocket.create_connection(
websocket_url + self._get_url_timestamp(), header=headers,
cookie=cookies, enable_multithread=True, **extra_options)
except (ConnectionError, IOError, websocket.WebSocketException):
if upgrade:
self.logger.warning(
Expand Down
19 changes: 12 additions & 7 deletions tests/common/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ def test_websocket_connection_failed(self, create_connection, _time):
transports=['websocket'], headers={'Foo': 'Bar'})
create_connection.assert_called_once_with(
'ws://foo/engine.io/?transport=websocket&EIO=3&t=123.456',
header={'Foo': 'Bar'}, cookie=None)
header={'Foo': 'Bar'}, cookie=None, enable_multithread=True)

@mock.patch('engineio.client.time.time', return_value=123.456)
@mock.patch('engineio.client.websocket.create_connection',
Expand All @@ -493,7 +493,7 @@ def test_websocket_connection_failed_with_websocket_error(
transports=['websocket'], headers={'Foo': 'Bar'})
create_connection.assert_called_once_with(
'ws://foo/engine.io/?transport=websocket&EIO=3&t=123.456',
header={'Foo': 'Bar'}, cookie=None)
header={'Foo': 'Bar'}, cookie=None, enable_multithread=True)

@mock.patch('engineio.client.time.time', return_value=123.456)
@mock.patch('engineio.client.websocket.create_connection',
Expand All @@ -504,7 +504,7 @@ def test_websocket_upgrade_failed(self, create_connection, _time):
self.assertFalse(c.connect('http://foo', transports=['websocket']))
create_connection.assert_called_once_with(
'ws://foo/engine.io/?transport=websocket&EIO=3&sid=123&t=123.456',
header={}, cookie=None)
header={}, cookie=None, enable_multithread=True)

@mock.patch('engineio.client.websocket.create_connection')
def test_websocket_connection_no_open_packet(self, create_connection):
Expand Down Expand Up @@ -548,7 +548,8 @@ def test_websocket_connection_successful(self, create_connection):
self.assertEqual(c.ws, create_connection.return_value)
self.assertEqual(len(create_connection.call_args_list), 1)
self.assertEqual(create_connection.call_args[1],
{'header': {}, 'cookie': None})
{'header': {}, 'cookie': None,
'enable_multithread': True})

@mock.patch('engineio.client.websocket.create_connection')
def test_websocket_https_noverify_connection_successful(
Expand Down Expand Up @@ -586,6 +587,7 @@ def test_websocket_https_noverify_connection_successful(
self.assertEqual(len(create_connection.call_args_list), 1)
self.assertEqual(create_connection.call_args[1],
{'header': {}, 'cookie': None,
'enable_multithread': True,
'sslopt': {'cert_reqs': ssl.CERT_NONE}})

@mock.patch('engineio.client.websocket.create_connection')
Expand Down Expand Up @@ -613,7 +615,8 @@ def test_websocket_connection_with_cookies(self, create_connection):

self.assertEqual(len(create_connection.call_args_list), 1)
self.assertEqual(create_connection.call_args[1],
{'header': {}, 'cookie': 'key=value; key2=value2'})
{'header': {}, 'cookie': 'key=value; key2=value2',
'enable_multithread': True})

@mock.patch('engineio.client.websocket.create_connection')
def test_websocket_connection_with_cookie_header(self, create_connection):
Expand All @@ -637,7 +640,8 @@ def test_websocket_connection_with_cookie_header(self, create_connection):

self.assertEqual(len(create_connection.call_args_list), 1)
self.assertEqual(create_connection.call_args[1],
{'header': {'Foo': 'bar'}, 'cookie': 'key=value'})
{'header': {'Foo': 'bar'}, 'cookie': 'key=value',
'enable_multithread': True})

@mock.patch('engineio.client.websocket.create_connection')
def test_websocket_connection_with_cookies_and_headers(
Expand Down Expand Up @@ -667,7 +671,8 @@ def test_websocket_connection_with_cookies_and_headers(
self.assertEqual(len(create_connection.call_args_list), 1)
self.assertEqual(
create_connection.call_args[1],
{'header': {}, 'cookie': 'key=value; key2=value2; key3=value3'})
{'header': {}, 'enable_multithread': True,
'cookie': 'key=value; key2=value2; key3=value3'})

@mock.patch('engineio.client.websocket.create_connection')
def test_websocket_upgrade_no_pong(self, create_connection):
Expand Down

0 comments on commit f7bbd97

Please sign in to comment.