tests/test_example_postgres_session_store.py: sync tests depend on async fixtures, so the module errors at setup on pytest 9

Author: codyanthony736Created Sep 14, 2026Updated Sep 14, 2026
Labelsbug

tests/test_example_postgres_session_store.py has two synchronous tests that take async fixtures: test_store_implements_required_methods (line 145, fixture store) and test_rejects_unsafe_table_name (line 154, fixture pool). pytest deprecated a sync test depending on an async fixture in 8.4 and made it an error in 9.0, and the dev extra pins pytest>=7.0.0 with no ceiling, so a fresh pip install -e ".[dev,examples]" resolves pytest 9.1.1 today.

Repro (v0.2.152, Python 3.11, live Postgres at SESSION_STORE_POSTGRES_URL):

bash
pip install -e ".[dev,examples]"          # pytest 9.1.1
python -m pytest tests/test_example_postgres_session_store.py -q
# 1 passed, 4 errors: "requested an async fixture 'pool', with no plugin or hook that handled it"

pip install "pytest<8.4"                    # pytest 8.3.5
python -m pytest tests/test_example_postgres_session_store.py -q
# 4 passed, 1 failed: test_store_implements_required_methods
#   AssertionError: assert False, where False = _store_implements(<coroutine object store>, 'append')

At 8.3.5 the sync test receives the async store fixture as an un-awaited coroutine, so that one test fails at any pytest version; the other four, including test_conformance against the live adapter, pass. The adapter itself is fine.

CI doesn't see this: asyncpg is in the examples extra, the test workflow installs .[dev], and the module importorskips asyncpg, so it has skipped on every CI run.

Source: anthropics/claude-agent-sdk-python