python-engineio 4.12.1__tar.gz → 4.12.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_engineio-4.12.1/src/python_engineio.egg-info → python_engineio-4.12.2}/PKG-INFO +1 -1
- {python_engineio-4.12.1 → python_engineio-4.12.2}/pyproject.toml +1 -1
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_client.py +10 -7
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/asgi.py +2 -2
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/base_client.py +12 -1
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/client.py +9 -6
- {python_engineio-4.12.1 → python_engineio-4.12.2/src/python_engineio.egg-info}/PKG-INFO +1 -1
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/test_client.py +11 -11
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/test_client.py +13 -12
- {python_engineio-4.12.1 → python_engineio-4.12.2}/LICENSE +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/MANIFEST.in +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/README.md +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/Makefile +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/_static/README.md +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/api.rst +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/client.rst +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/conf.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/index.rst +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/intro.rst +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/make.bat +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/docs/server.rst +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/setup.cfg +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/__init__.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/__init__.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/_websocket_wsgi.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/aiohttp.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/eventlet.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/gevent.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/gevent_uwsgi.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/sanic.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/threading.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/tornado.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_server.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_socket.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/base_server.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/base_socket.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/exceptions.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/json.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/middleware.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/packet.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/payload.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/server.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/socket.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/static_files.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/python_engineio.egg-info/SOURCES.txt +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/python_engineio.egg-info/dependency_links.txt +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/python_engineio.egg-info/not-zip-safe +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/python_engineio.egg-info/requires.txt +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/src/python_engineio.egg-info/top_level.txt +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/__init__.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/__init__.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/index.html +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/test_aiohttp.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/test_asgi.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/test_sanic.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/test_server.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/test_socket.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/async/test_tornado.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/__init__.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/index.html +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/test_middleware.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/test_packet.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/test_payload.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/test_server.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/common/test_socket.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/README.md +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/binary_b64_packet.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/binary_packet.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/json_packet.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/payload.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/run.sh +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/server_receive.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tests/performance/text_packet.py +0 -0
- {python_engineio-4.12.1 → python_engineio-4.12.2}/tox.ini +0 -0
|
@@ -126,7 +126,6 @@ class AsyncClient(base_client.BaseClient):
|
|
|
126
126
|
if not transports:
|
|
127
127
|
raise ValueError('No valid transports provided')
|
|
128
128
|
self.transports = transports or valid_transports
|
|
129
|
-
self.queue = self.create_queue()
|
|
130
129
|
return await getattr(self, '_connect_' + self.transports[0])(
|
|
131
130
|
url, headers or {}, engineio_path)
|
|
132
131
|
|
|
@@ -199,11 +198,15 @@ class AsyncClient(base_client.BaseClient):
|
|
|
199
198
|
"""
|
|
200
199
|
return await asyncio.sleep(seconds)
|
|
201
200
|
|
|
202
|
-
def create_queue(self):
|
|
201
|
+
def create_queue(self, *args, **kwargs):
|
|
203
202
|
"""Create a queue object."""
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
203
|
+
return asyncio.Queue(*args, **kwargs)
|
|
204
|
+
|
|
205
|
+
def get_queue_empty_exception(self):
|
|
206
|
+
"""Return the queue empty exception raised by queues created by the
|
|
207
|
+
``create_queue()`` method.
|
|
208
|
+
"""
|
|
209
|
+
return asyncio.QueueEmpty
|
|
207
210
|
|
|
208
211
|
def create_event(self):
|
|
209
212
|
"""Create an event object."""
|
|
@@ -624,7 +627,7 @@ class AsyncClient(base_client.BaseClient):
|
|
|
624
627
|
packets = None
|
|
625
628
|
try:
|
|
626
629
|
packets = [await asyncio.wait_for(self.queue.get(), timeout)]
|
|
627
|
-
except (self.
|
|
630
|
+
except (self.queue_empty, asyncio.TimeoutError):
|
|
628
631
|
self.logger.error('packet queue is empty, aborting')
|
|
629
632
|
break
|
|
630
633
|
except asyncio.CancelledError: # pragma: no cover
|
|
@@ -636,7 +639,7 @@ class AsyncClient(base_client.BaseClient):
|
|
|
636
639
|
while True:
|
|
637
640
|
try:
|
|
638
641
|
packets.append(self.queue.get_nowait())
|
|
639
|
-
except self.
|
|
642
|
+
except self.queue_empty:
|
|
640
643
|
break
|
|
641
644
|
if packets[-1] is None:
|
|
642
645
|
packets = packets[:-1]
|
|
@@ -280,9 +280,9 @@ class WebSocket: # pragma: no cover
|
|
|
280
280
|
event = await self.asgi_receive()
|
|
281
281
|
if event['type'] != 'websocket.receive':
|
|
282
282
|
raise OSError()
|
|
283
|
-
if 'bytes'
|
|
283
|
+
if event.get('bytes', None) is not None:
|
|
284
284
|
return event['bytes']
|
|
285
|
-
elif 'text'
|
|
285
|
+
elif event.get('text', None) is not None:
|
|
286
286
|
return event['text']
|
|
287
287
|
else: # pragma: no cover
|
|
288
288
|
raise OSError()
|
|
@@ -61,7 +61,8 @@ class BaseClient:
|
|
|
61
61
|
self.ws = None
|
|
62
62
|
self.read_loop_task = None
|
|
63
63
|
self.write_loop_task = None
|
|
64
|
-
self.queue =
|
|
64
|
+
self.queue = self.create_queue()
|
|
65
|
+
self.queue_empty = self.get_queue_empty_exception()
|
|
65
66
|
self.state = 'disconnected'
|
|
66
67
|
self.ssl_verify = ssl_verify
|
|
67
68
|
self.websocket_extra_options = websocket_extra_options or {}
|
|
@@ -156,3 +157,13 @@ class BaseClient:
|
|
|
156
157
|
if not self.timestamp_requests:
|
|
157
158
|
return ''
|
|
158
159
|
return '&t=' + str(time.time())
|
|
160
|
+
|
|
161
|
+
def create_queue(self, *args, **kwargs): # pragma: no cover
|
|
162
|
+
"""Create a queue object."""
|
|
163
|
+
raise NotImplementedError('must be implemented in a subclass')
|
|
164
|
+
|
|
165
|
+
def get_queue_empty_exception(self): # pragma: no cover
|
|
166
|
+
"""Return the queue empty exception raised by queues created by the
|
|
167
|
+
``create_queue()`` method.
|
|
168
|
+
"""
|
|
169
|
+
raise NotImplementedError('must be implemented in a subclass')
|
|
@@ -91,7 +91,6 @@ class Client(base_client.BaseClient):
|
|
|
91
91
|
if not transports:
|
|
92
92
|
raise ValueError('No valid transports provided')
|
|
93
93
|
self.transports = transports or valid_transports
|
|
94
|
-
self.queue = self.create_queue()
|
|
95
94
|
return getattr(self, '_connect_' + self.transports[0])(
|
|
96
95
|
url, headers or {}, engineio_path)
|
|
97
96
|
|
|
@@ -162,9 +161,13 @@ class Client(base_client.BaseClient):
|
|
|
162
161
|
|
|
163
162
|
def create_queue(self, *args, **kwargs):
|
|
164
163
|
"""Create a queue object."""
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
164
|
+
return queue.Queue(*args, **kwargs)
|
|
165
|
+
|
|
166
|
+
def get_queue_empty_exception(self):
|
|
167
|
+
"""Return the queue empty exception raised by queues created by the
|
|
168
|
+
``create_queue()`` method.
|
|
169
|
+
"""
|
|
170
|
+
return queue.Empty
|
|
168
171
|
|
|
169
172
|
def create_event(self, *args, **kwargs):
|
|
170
173
|
"""Create an event object."""
|
|
@@ -566,7 +569,7 @@ class Client(base_client.BaseClient):
|
|
|
566
569
|
packets = None
|
|
567
570
|
try:
|
|
568
571
|
packets = [self.queue.get(timeout=timeout)]
|
|
569
|
-
except self.
|
|
572
|
+
except self.queue_empty:
|
|
570
573
|
self.logger.error('packet queue is empty, aborting')
|
|
571
574
|
break
|
|
572
575
|
if packets == [None]:
|
|
@@ -576,7 +579,7 @@ class Client(base_client.BaseClient):
|
|
|
576
579
|
while True:
|
|
577
580
|
try:
|
|
578
581
|
packets.append(self.queue.get(block=False))
|
|
579
|
-
except self.
|
|
582
|
+
except self.queue_empty:
|
|
580
583
|
break
|
|
581
584
|
if packets[-1] is None:
|
|
582
585
|
packets = packets[:-1]
|
|
@@ -225,7 +225,7 @@ class TestAsyncClient:
|
|
|
225
225
|
async def test_create_queue(self):
|
|
226
226
|
c = async_client.AsyncClient()
|
|
227
227
|
q = c.create_queue()
|
|
228
|
-
with pytest.raises(
|
|
228
|
+
with pytest.raises(c.queue_empty):
|
|
229
229
|
q.get_nowait()
|
|
230
230
|
|
|
231
231
|
async def test_create_event(self):
|
|
@@ -1200,7 +1200,7 @@ class TestAsyncClient:
|
|
|
1200
1200
|
c.ping_interval = 1
|
|
1201
1201
|
c.ping_timeout = 2
|
|
1202
1202
|
c.queue = mock.MagicMock()
|
|
1203
|
-
c.
|
|
1203
|
+
c.queue_empty = RuntimeError
|
|
1204
1204
|
c.queue.get = mock.AsyncMock(side_effect=RuntimeError)
|
|
1205
1205
|
await c._write_loop()
|
|
1206
1206
|
c.queue.get.assert_awaited_once_with()
|
|
@@ -1213,7 +1213,7 @@ class TestAsyncClient:
|
|
|
1213
1213
|
c.ping_timeout = 2
|
|
1214
1214
|
c.current_transport = 'polling'
|
|
1215
1215
|
c.queue = mock.MagicMock()
|
|
1216
|
-
c.
|
|
1216
|
+
c.queue_empty = RuntimeError
|
|
1217
1217
|
c.queue.get = mock.AsyncMock(
|
|
1218
1218
|
side_effect=[
|
|
1219
1219
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
@@ -1244,7 +1244,7 @@ class TestAsyncClient:
|
|
|
1244
1244
|
c.ping_timeout = 2
|
|
1245
1245
|
c.current_transport = 'polling'
|
|
1246
1246
|
c.queue = mock.MagicMock()
|
|
1247
|
-
c.
|
|
1247
|
+
c.queue_empty = RuntimeError
|
|
1248
1248
|
c.queue.get = mock.AsyncMock(
|
|
1249
1249
|
side_effect=[
|
|
1250
1250
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
@@ -1285,7 +1285,7 @@ class TestAsyncClient:
|
|
|
1285
1285
|
c.ping_timeout = 2
|
|
1286
1286
|
c.current_transport = 'polling'
|
|
1287
1287
|
c.queue = mock.MagicMock()
|
|
1288
|
-
c.
|
|
1288
|
+
c.queue_empty = RuntimeError
|
|
1289
1289
|
c.queue.get = mock.AsyncMock(
|
|
1290
1290
|
side_effect=[
|
|
1291
1291
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
@@ -1322,7 +1322,7 @@ class TestAsyncClient:
|
|
|
1322
1322
|
c.ping_timeout = 2
|
|
1323
1323
|
c.current_transport = 'polling'
|
|
1324
1324
|
c.queue = mock.MagicMock()
|
|
1325
|
-
c.
|
|
1325
|
+
c.queue_empty = RuntimeError
|
|
1326
1326
|
c.queue.get = mock.AsyncMock(
|
|
1327
1327
|
side_effect=[packet.Packet(packet.MESSAGE, {'foo': 'bar'})]
|
|
1328
1328
|
)
|
|
@@ -1350,7 +1350,7 @@ class TestAsyncClient:
|
|
|
1350
1350
|
c.ping_timeout = 2
|
|
1351
1351
|
c.current_transport = 'polling'
|
|
1352
1352
|
c.queue = mock.MagicMock()
|
|
1353
|
-
c.
|
|
1353
|
+
c.queue_empty = RuntimeError
|
|
1354
1354
|
c.queue.get = mock.AsyncMock(
|
|
1355
1355
|
side_effect=[packet.Packet(packet.MESSAGE, {'foo': 'bar'})]
|
|
1356
1356
|
)
|
|
@@ -1379,7 +1379,7 @@ class TestAsyncClient:
|
|
|
1379
1379
|
c.ping_timeout = 2
|
|
1380
1380
|
c.current_transport = 'websocket'
|
|
1381
1381
|
c.queue = mock.MagicMock()
|
|
1382
|
-
c.
|
|
1382
|
+
c.queue_empty = RuntimeError
|
|
1383
1383
|
c.queue.get = mock.AsyncMock(
|
|
1384
1384
|
side_effect=[
|
|
1385
1385
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
@@ -1401,7 +1401,7 @@ class TestAsyncClient:
|
|
|
1401
1401
|
c.ping_timeout = 2
|
|
1402
1402
|
c.current_transport = 'websocket'
|
|
1403
1403
|
c.queue = mock.MagicMock()
|
|
1404
|
-
c.
|
|
1404
|
+
c.queue_empty = RuntimeError
|
|
1405
1405
|
c.queue.get = mock.AsyncMock(
|
|
1406
1406
|
side_effect=[
|
|
1407
1407
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
@@ -1431,7 +1431,7 @@ class TestAsyncClient:
|
|
|
1431
1431
|
c.ping_timeout = 2
|
|
1432
1432
|
c.current_transport = 'websocket'
|
|
1433
1433
|
c.queue = mock.MagicMock()
|
|
1434
|
-
c.
|
|
1434
|
+
c.queue_empty = RuntimeError
|
|
1435
1435
|
c.queue.get = mock.AsyncMock(
|
|
1436
1436
|
side_effect=[packet.Packet(packet.MESSAGE, b'foo'), RuntimeError]
|
|
1437
1437
|
)
|
|
@@ -1450,7 +1450,7 @@ class TestAsyncClient:
|
|
|
1450
1450
|
c.ping_timeout = 2
|
|
1451
1451
|
c.current_transport = 'websocket'
|
|
1452
1452
|
c.queue = mock.MagicMock()
|
|
1453
|
-
c.
|
|
1453
|
+
c.queue_empty = RuntimeError
|
|
1454
1454
|
c.queue.get = mock.AsyncMock(
|
|
1455
1455
|
side_effect=[
|
|
1456
1456
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
@@ -33,10 +33,11 @@ class TestClient:
|
|
|
33
33
|
'ws',
|
|
34
34
|
'read_loop_task',
|
|
35
35
|
'write_loop_task',
|
|
36
|
-
'queue',
|
|
37
36
|
]:
|
|
38
37
|
assert getattr(c, attr) is None, attr + ' is not None'
|
|
39
38
|
assert c.state == 'disconnected'
|
|
39
|
+
assert c.queue.__class__.__name__ == 'Queue'
|
|
40
|
+
assert c.queue_empty.__name__ == 'Empty'
|
|
40
41
|
|
|
41
42
|
def test_custom_json(self):
|
|
42
43
|
client.Client()
|
|
@@ -289,7 +290,7 @@ class TestClient:
|
|
|
289
290
|
def test_create_queue(self):
|
|
290
291
|
c = client.Client()
|
|
291
292
|
q = c.create_queue()
|
|
292
|
-
with pytest.raises(
|
|
293
|
+
with pytest.raises(c.queue_empty):
|
|
293
294
|
q.get(timeout=0.01)
|
|
294
295
|
|
|
295
296
|
def test_create_event(self):
|
|
@@ -1499,7 +1500,7 @@ class TestClient:
|
|
|
1499
1500
|
c.ping_interval = 1
|
|
1500
1501
|
c.ping_timeout = 2
|
|
1501
1502
|
c.queue = mock.MagicMock()
|
|
1502
|
-
c.
|
|
1503
|
+
c.queue_empty = RuntimeError
|
|
1503
1504
|
c.queue.get.side_effect = RuntimeError
|
|
1504
1505
|
c._write_loop()
|
|
1505
1506
|
c.queue.get.assert_called_once_with(timeout=7)
|
|
@@ -1512,7 +1513,7 @@ class TestClient:
|
|
|
1512
1513
|
c.ping_timeout = 2
|
|
1513
1514
|
c.current_transport = 'polling'
|
|
1514
1515
|
c.queue = mock.MagicMock()
|
|
1515
|
-
c.
|
|
1516
|
+
c.queue_empty = RuntimeError
|
|
1516
1517
|
c.queue.get.side_effect = [
|
|
1517
1518
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1518
1519
|
RuntimeError,
|
|
@@ -1541,7 +1542,7 @@ class TestClient:
|
|
|
1541
1542
|
c.ping_timeout = 2
|
|
1542
1543
|
c.current_transport = 'polling'
|
|
1543
1544
|
c.queue = mock.MagicMock()
|
|
1544
|
-
c.
|
|
1545
|
+
c.queue_empty = RuntimeError
|
|
1545
1546
|
c.queue.get.side_effect = [
|
|
1546
1547
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1547
1548
|
packet.Packet(packet.PING),
|
|
@@ -1576,7 +1577,7 @@ class TestClient:
|
|
|
1576
1577
|
c.ping_timeout = 2
|
|
1577
1578
|
c.current_transport = 'polling'
|
|
1578
1579
|
c.queue = mock.MagicMock()
|
|
1579
|
-
c.
|
|
1580
|
+
c.queue_empty = RuntimeError
|
|
1580
1581
|
c.queue.get.side_effect = [
|
|
1581
1582
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1582
1583
|
packet.Packet(packet.PING),
|
|
@@ -1610,7 +1611,7 @@ class TestClient:
|
|
|
1610
1611
|
c.ping_timeout = 2
|
|
1611
1612
|
c.current_transport = 'polling'
|
|
1612
1613
|
c.queue = mock.MagicMock()
|
|
1613
|
-
c.
|
|
1614
|
+
c.queue_empty = RuntimeError
|
|
1614
1615
|
c.queue.get.side_effect = [
|
|
1615
1616
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1616
1617
|
RuntimeError,
|
|
@@ -1639,7 +1640,7 @@ class TestClient:
|
|
|
1639
1640
|
c.ping_timeout = 2
|
|
1640
1641
|
c.current_transport = 'polling'
|
|
1641
1642
|
c.queue = mock.MagicMock()
|
|
1642
|
-
c.
|
|
1643
|
+
c.queue_empty = RuntimeError
|
|
1643
1644
|
c.queue.get.side_effect = [
|
|
1644
1645
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1645
1646
|
RuntimeError,
|
|
@@ -1668,7 +1669,7 @@ class TestClient:
|
|
|
1668
1669
|
c.ping_timeout = 2
|
|
1669
1670
|
c.current_transport = 'websocket'
|
|
1670
1671
|
c.queue = mock.MagicMock()
|
|
1671
|
-
c.
|
|
1672
|
+
c.queue_empty = RuntimeError
|
|
1672
1673
|
c.queue.get.side_effect = [
|
|
1673
1674
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1674
1675
|
RuntimeError,
|
|
@@ -1688,7 +1689,7 @@ class TestClient:
|
|
|
1688
1689
|
c.ping_timeout = 2
|
|
1689
1690
|
c.current_transport = 'websocket'
|
|
1690
1691
|
c.queue = mock.MagicMock()
|
|
1691
|
-
c.
|
|
1692
|
+
c.queue_empty = RuntimeError
|
|
1692
1693
|
c.queue.get.side_effect = [
|
|
1693
1694
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1694
1695
|
packet.Packet(packet.PING),
|
|
@@ -1712,7 +1713,7 @@ class TestClient:
|
|
|
1712
1713
|
c.ping_timeout = 2
|
|
1713
1714
|
c.current_transport = 'websocket'
|
|
1714
1715
|
c.queue = mock.MagicMock()
|
|
1715
|
-
c.
|
|
1716
|
+
c.queue_empty = RuntimeError
|
|
1716
1717
|
c.queue.get.side_effect = [
|
|
1717
1718
|
packet.Packet(packet.MESSAGE, b'foo'),
|
|
1718
1719
|
RuntimeError,
|
|
@@ -1732,7 +1733,7 @@ class TestClient:
|
|
|
1732
1733
|
c.ping_timeout = 2
|
|
1733
1734
|
c.current_transport = 'websocket'
|
|
1734
1735
|
c.queue = mock.MagicMock()
|
|
1735
|
-
c.
|
|
1736
|
+
c.queue_empty = RuntimeError
|
|
1736
1737
|
c.queue.get.side_effect = [
|
|
1737
1738
|
packet.Packet(packet.MESSAGE, {'foo': 'bar'}),
|
|
1738
1739
|
RuntimeError,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/_websocket_wsgi.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.12.1 → python_engineio-4.12.2}/src/engineio/async_drivers/gevent_uwsgi.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.12.1 → python_engineio-4.12.2}/src/python_engineio.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_engineio-4.12.1 → python_engineio-4.12.2}/src/python_engineio.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|