diff --git a/pyproject.toml b/pyproject.toml index f91b58ac..1730eb10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -83,7 +83,13 @@ testing = [ # test suite # TODO: maybe some of these layout choices? # https://docs.pytest.org/en/8.0.x/explanation/goodpractices.html#choosing-a-test-layout-import-rules - "pytest>=8.3.5", + # bumped 8.3.5 → 9.0 per upstream security advisory + our + # local-only reliance on the post-9.0 capture-machinery shape + # (the `sys.__stderr__`-bypass print in + # `tractor._testing.trace._do_capture_snapshot` works on 8.x + # too, but standardizing on 9.x here ensures `--show-capture` + # interactions stay predictable across dev installs). + "pytest>=9.0", "pexpect>=4.9.0,<5", # per-test wall-clock bound (used via # `@pytest.mark.timeout(..., method='thread')` on the diff --git a/uv.lock b/uv.lock index 1776f890..58e97d9b 100644 --- a/uv.lock +++ b/uv.lock @@ -559,17 +559,18 @@ wheels = [ [[package]] name = "pytest" -version = "8.3.5" +version = "9.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, + { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload-time = "2026-04-07T17:16:18.027Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/30/3d/64ad57c803f1fa1e963a7946b6e0fea4a70df53c1a7fed304586539c2bac/pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820", size = 343634, upload-time = "2025-03-02T12:54:52.069Z" }, + { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload-time = "2026-04-07T17:16:16.13Z" }, ] [[package]] @@ -792,7 +793,7 @@ dev = [ { name = "prompt-toolkit", specifier = ">=3.0.50" }, { name = "psutil", specifier = ">=7.0.0" }, { name = "pyperclip", specifier = ">=1.9.0" }, - { name = "pytest", specifier = ">=8.3.5" }, + { name = "pytest", specifier = ">=9.0" }, { name = "pytest-timeout", specifier = ">=2.3" }, { name = "stackscope", specifier = ">=0.2.2,<0.3" }, { name = "typing-extensions", specifier = ">=4.14.1" }, @@ -815,7 +816,7 @@ sync-pause = [{ name = "greenback", marker = "python_full_version == '3.13.*'", testing = [ { name = "pexpect", specifier = ">=4.9.0,<5" }, { name = "psutil", specifier = ">=7.0.0" }, - { name = "pytest", specifier = ">=8.3.5" }, + { name = "pytest", specifier = ">=9.0" }, { name = "pytest-timeout", specifier = ">=2.3" }, ]