[pytest]
testpaths = .
asyncio_mode = auto
asyncio_default_fixture_loop_scope = function
filterwarnings =
    ignore::DeprecationWarning
    ignore::sqlalchemy.exc.SAWarning
    # Filter warnings from async mocks - coroutines created by mocks that are
    # intentionally not awaited (expected behavior in unit tests)
    ignore:coroutine.*was never awaited:RuntimeWarning
    # Starlette ≥ 1.1 fires its own StarletteDeprecationWarning at import
    # time of starlette.testclient asking us to migrate to ``httpx2``.
    # Upstream-internal migration; nothing actionable in Bambuddy and a
    # full move to httpx2 is its own change. Match by message text so the
    # filter holds regardless of which warning class starlette uses.
    ignore:Using .httpx. with .starlette.testclient. is deprecated
markers =
    unit: Unit tests (fast, no external deps)
    integration: Integration tests (slower, test full API)
    slow: Slow tests (skip with -m "not slow")
