Skip to content

Commit 5f2c7f6

Browse files
Asyncio client: correctly update cookie jar (Fixes #166)
1 parent 2aa94d6 commit 5f2c7f6

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

engineio/asyncio_client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ async def _connect_websocket(self, url, headers, engineio_path):
252252
[cookie.split('=') for cookie in value.split('; ')])
253253
del headers[header]
254254
break
255+
self.http.cookie_jar.update_cookies(cookies)
255256

256257
try:
257258
if not self.ssl_verify:
@@ -260,11 +261,11 @@ async def _connect_websocket(self, url, headers, engineio_path):
260261
ssl_context.verify_mode = ssl.CERT_NONE
261262
ws = await self.http.ws_connect(
262263
websocket_url + self._get_url_timestamp(),
263-
headers=headers, cookies=cookies, ssl=ssl_context)
264+
headers=headers, ssl=ssl_context)
264265
else:
265266
ws = await self.http.ws_connect(
266267
websocket_url + self._get_url_timestamp(),
267-
headers=headers, cookies=cookies)
268+
headers=headers)
268269
except (aiohttp.client_exceptions.WSServerHandshakeError,
269270
aiohttp.client_exceptions.ServerConnectionError):
270271
if upgrade:

tests/asyncio/test_asyncio_client.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ def test_websocket_connection_failed(self, _time):
464464
headers={'Foo': 'Bar'}))
465465
c.http.ws_connect.mock.assert_called_once_with(
466466
'ws://foo/engine.io/?transport=websocket&EIO=3&t=123.456',
467-
headers={'Foo': 'Bar'}, cookies={})
467+
headers={'Foo': 'Bar'})
468468

469469
@mock.patch('engineio.client.time.time', return_value=123.456)
470470
def test_websocket_upgrade_failed(self, _time):
@@ -477,7 +477,7 @@ def test_websocket_upgrade_failed(self, _time):
477477
'http://foo', transports=['websocket'])))
478478
c.http.ws_connect.mock.assert_called_once_with(
479479
'ws://foo/engine.io/?transport=websocket&EIO=3&sid=123&t=123.456',
480-
headers={}, cookies={})
480+
headers={})
481481

482482
def test_websocket_connection_no_open_packet(self):
483483
c = asyncio_client.AsyncClient()
@@ -528,7 +528,7 @@ def test_websocket_connection_successful(self, _time):
528528
self.assertEqual(c.ws, ws)
529529
c.http.ws_connect.mock.assert_called_once_with(
530530
'ws://foo/engine.io/?transport=websocket&EIO=3&t=123.456',
531-
headers={}, cookies={})
531+
headers={})
532532

533533
@mock.patch('engineio.client.time.time', return_value=123.456)
534534
def test_websocket_https_noverify_connection_successful(self, _time):
@@ -596,7 +596,7 @@ def test_websocket_connection_with_cookies(self, _time):
596596
time.sleep(0.1)
597597
c.http.ws_connect.mock.assert_called_once_with(
598598
'ws://foo/engine.io/?transport=websocket&EIO=3&t=123.456',
599-
headers={}, cookies={})
599+
headers={})
600600

601601
@mock.patch('engineio.client.time.time', return_value=123.456)
602602
def test_websocket_connection_with_cookie_header(self, _time):
@@ -622,7 +622,9 @@ def test_websocket_connection_with_cookie_header(self, _time):
622622
time.sleep(0.1)
623623
c.http.ws_connect.mock.assert_called_once_with(
624624
'ws://foo/engine.io/?transport=websocket&EIO=3&t=123.456',
625-
headers={}, cookies={'key': 'value', 'key2': 'value2'})
625+
headers={})
626+
c.http.cookie_jar.update_cookies.assert_called_once_with(
627+
{'key': 'value', 'key2': 'value2'})
626628

627629
@mock.patch('engineio.client.time.time', return_value=123.456)
628630
def test_websocket_connection_with_cookies_and_headers(self, _time):
@@ -652,7 +654,9 @@ def test_websocket_connection_with_cookies_and_headers(self, _time):
652654
time.sleep(0.1)
653655
c.http.ws_connect.mock.assert_called_once_with(
654656
'ws://foo/engine.io/?transport=websocket&EIO=3&t=123.456',
655-
headers={'Foo': 'Bar'}, cookies={'key3': 'value3'})
657+
headers={'Foo': 'Bar'})
658+
c.http.cookie_jar.update_cookies.assert_called_once_with(
659+
{'key3': 'value3'})
656660

657661
def test_websocket_upgrade_no_pong(self):
658662
c = asyncio_client.AsyncClient()

0 commit comments

Comments
 (0)