From a5255ec984098579d400a631fdf3a2571cb0ca79 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Fri, 4 Sep 2026 01:47:26 +0200 Subject: test: add pytest-timeout and pin the Windows selector event loop A hung test could wedge the whole run: aiortc's ICE stack never completes a loopback DataChannel handshake on Windows' default ProactorEventLoop, and nothing capped it. Two changes, both no-ops off Windows: - `timeout = 60` in the root pytest config (+ pytest-timeout in the dev extras) so a stall fails the test instead of the suite. - a root conftest that selects WindowsSelectorEventLoopPolicy on win32 only, which is what aiortc needs there. Trade-off, documented: the selector loop cannot spawn subprocesses on Windows, so the ffmpeg streaming tests fail there rather than pass -- they need a per-module override or skipif(win32). Co-Authored-By: Claude Sonnet 5 --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'pyproject.toml') diff --git a/pyproject.toml b/pyproject.toml index 000e037..0c99c1a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,3 +19,7 @@ testpaths = [ "packages/meshbay-node/tests", ] asyncio_mode = "auto" +# A hung test must not wedge the run — an aiortc handshake on the wrong Windows +# event loop can block forever with no internal timeout. thread method is used +# automatically on Windows (no SIGALRM). +timeout = 60 -- cgit v1.2.3