diff --git a/tests/conftest.py b/tests/conftest.py index 858bca1397..54d62af60d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -235,10 +235,9 @@ def install_signal_handlers(self) -> None: async def serve(self, sockets=None): self.restart_requested = asyncio.Event() - loop = asyncio.get_event_loop() tasks = { - loop.create_task(super().serve(sockets=sockets)), - loop.create_task(self.watch_restarts()), + asyncio.create_task(super().serve(sockets=sockets)), + asyncio.create_task(self.watch_restarts()), } await asyncio.wait(tasks) @@ -269,7 +268,15 @@ async def watch_restarts(self) -> None: # pragma: no cover def serve_in_thread(server: TestServer) -> typing.Iterator[TestServer]: - thread = threading.Thread(target=server.run) + def run_server(): + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + try: + loop.run_until_complete(server.serve()) + finally: + loop.close() + + thread = threading.Thread(target=run_server) thread.start() try: while not server.started: @@ -282,6 +289,6 @@ def serve_in_thread(server: TestServer) -> typing.Iterator[TestServer]: @pytest.fixture(scope="session") def server() -> typing.Iterator[TestServer]: - config = Config(app=app, lifespan="off", loop="asyncio") + config = Config(app=app, lifespan="off") server = TestServer(config=config) yield from serve_in_thread(server)