diff --git a/docs/client/development.md b/docs/client/development.md index 0120b4e..cd58267 100644 --- a/docs/client/development.md +++ b/docs/client/development.md @@ -6,6 +6,12 @@ own tooling. Runtime dependency versions match the environment used to capture the pre-migration server; framework upgrades require a separate compatibility review. +Pytest filters only the known `anyio.abc.BlockingPortal` deprecation emitted by +Starlette's test client ([upstream issue](https://github.com/Kludex/starlette/issues/3497)). +The filter matches the exact message, warning category, and module; other +warnings remain visible. Remove it when a compatible Starlette upgrade replaces +the deprecated alias. Runtime dependencies and warning handling are unchanged. + ## Commands From the repository root: diff --git a/s2s-client/CHANGELOG.md b/s2s-client/CHANGELOG.md index f9b1abd..6918067 100644 --- a/s2s-client/CHANGELOG.md +++ b/s2s-client/CHANGELOG.md @@ -9,6 +9,8 @@ the implementation at the recorded date; current operating instructions live in ### Changed +- Filter the specific Starlette TestClient / AnyIO `BlockingPortal` deprecation + in pytest while retaining the runtime versions used for compatibility captures. - Added a uv-managed Python 3.12 environment and Ruff, mypy, and pytest quality checks, all contained in `s2s-client/`. Startup and Docker use the committed lockfile. Split the FastAPI service into configuration, route, provider, diff --git a/s2s-client/pyproject.toml b/s2s-client/pyproject.toml index f221e33..295d6e3 100644 --- a/s2s-client/pyproject.toml +++ b/s2s-client/pyproject.toml @@ -67,3 +67,9 @@ warn_untyped_fields = true [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["."] +# Starlette 0.41.3 uses an alias deprecated by AnyIO 4.15. Keep the runtime +# versions used for compatibility captures; remove this test-only exception +# when upgrading Starlette. Upstream: https://github.com/Kludex/starlette/issues/3497 +filterwarnings = [ + 'ignore:^The anyio\.abc\.BlockingPortal alias is deprecated, use anyio\.from_thread\.BlockingPortal instead\.$:DeprecationWarning:^starlette\.testclient$', +]