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 --- packages/meshbay-node/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/meshbay-node/pyproject.toml') diff --git a/packages/meshbay-node/pyproject.toml b/packages/meshbay-node/pyproject.toml index 2aa80aa..1f174cd 100644 --- a/packages/meshbay-node/pyproject.toml +++ b/packages/meshbay-node/pyproject.toml @@ -28,7 +28,7 @@ dependencies = [ # camera output) for test_enrich_photo.py — Pillow itself is lenient enough # to round-trip a flat, non-standard EXIF dict, which would have hidden the # get_ifd(Exif) bug enrich_photo.py's DateTimeOriginal read had. -dev = ["pytest>=8", "pytest-asyncio>=0.24", "ruff>=0.6", "piexif>=1.1"] +dev = ["pytest>=8", "pytest-asyncio>=0.24", "pytest-timeout>=2.3", "ruff>=0.6", "piexif>=1.1"] [project.scripts] meshbay-node = "meshbay_node.daemon:main" -- cgit v1.2.3