Skip to content

Commit 1efd7ed

Browse files
GitHKAndrei Neagu
andauthored
⬆️ Upgrading dynamic-sidecar dependencies (ITISFoundation#5596)
Co-authored-by: Andrei Neagu <[email protected]>
1 parent eea0b8b commit 1efd7ed

File tree

5 files changed

+137
-477
lines changed

5 files changed

+137
-477
lines changed

packages/pytest-simcore/src/pytest_simcore/pytest_socketio.py

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
# pylint:disable=unused-argument
22
# pylint:disable=redefined-outer-name
33

4-
import asyncio
54
from collections.abc import AsyncIterable, AsyncIterator, Callable
65
from contextlib import _AsyncGeneratorContextManager, asynccontextmanager
76
from unittest.mock import AsyncMock
87

98
import pytest
109
import socketio
1110
from aiohttp import web
12-
from aiohttp.test_utils import TestServer
1311
from models_library.api_schemas_webserver.socketio import SocketIORoomStr
1412
from models_library.users import UserID
1513
from pytest_mock import MockerFixture
@@ -20,9 +18,9 @@
2018

2119

2220
@pytest.fixture
23-
async def socketio_server_factory() -> Callable[
24-
[RabbitSettings], _AsyncGeneratorContextManager[AsyncServer]
25-
]:
21+
async def socketio_server_factory() -> (
22+
Callable[[RabbitSettings], _AsyncGeneratorContextManager[AsyncServer]]
23+
):
2624
@asynccontextmanager
2725
async def _(rabbit_settings: RabbitSettings) -> AsyncIterator[AsyncServer]:
2826
# Same configuration as simcore_service_webserver/socketio/server.py
@@ -56,27 +54,18 @@ async def web_server(
5654
aiohttp_app = web.Application()
5755
socketio_server.attach(aiohttp_app)
5856

59-
async def _lifespan(
60-
server: TestServer, started: asyncio.Event, teardown: asyncio.Event
61-
):
62-
# NOTE: this is necessary to avoid blocking comms between client and this server
63-
await server.start_server()
64-
started.set() # notifies started
65-
await teardown.wait() # keeps test0server until needs to close
66-
await server.close()
57+
server_port = unused_tcp_port_factory()
6758

68-
setup = asyncio.Event()
69-
teardown = asyncio.Event()
59+
runner = web.AppRunner(aiohttp_app)
60+
await runner.setup()
7061

71-
server = TestServer(aiohttp_app, port=unused_tcp_port_factory())
72-
t = asyncio.create_task(_lifespan(server, setup, teardown), name="server-lifespan")
62+
site = web.TCPSite(runner, "localhost", server_port)
63+
await site.start()
7364

74-
await setup.wait()
65+
yield URL(f"http://localhost:{server_port}")
7566

76-
yield URL(server.make_url("/"))
77-
78-
assert t
79-
teardown.set()
67+
await site.stop()
68+
await runner.cleanup()
8069

8170

8271
@pytest.fixture

0 commit comments

Comments
 (0)