9201ef759e
Harness Compat / harness compat (push) Failing after 0s
CI / test on 3.12 (standard) (push) Has been cancelled
CI / test on 3.13 (standard) (push) Has been cancelled
CI / test on 3.14 (standard) (push) Has been cancelled
CI / test on 3.10 (all-extras) (push) Has been cancelled
CI / test on 3.11 (all-extras) (push) Has been cancelled
CI / test on 3.12 (all-extras) (push) Has been cancelled
CI / test on 3.14 (pydantic-ai-slim) (push) Has been cancelled
CI / test on 3.10 (pydantic-evals) (push) Has been cancelled
CI / test on 3.11 (pydantic-evals) (push) Has been cancelled
CI / test on 3.12 (pydantic-evals) (push) Has been cancelled
CI / deploy-docs-preview (push) Has been cancelled
CI / build release artifacts (push) Has been cancelled
CI / publish to PyPI (push) Has been cancelled
CI / Send tweet (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / mypy (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / test on 3.10 (standard) (push) Has been cancelled
CI / test on 3.11 (standard) (push) Has been cancelled
CI / test on 3.13 (all-extras) (push) Has been cancelled
CI / test on 3.14 (all-extras) (push) Has been cancelled
CI / test on 3.10 (pydantic-ai-slim) (push) Has been cancelled
CI / test on 3.11 (pydantic-ai-slim) (push) Has been cancelled
CI / test on 3.12 (pydantic-ai-slim) (push) Has been cancelled
CI / test on 3.13 (pydantic-ai-slim) (push) Has been cancelled
CI / test on 3.13 (pydantic-evals) (push) Has been cancelled
CI / test on 3.14 (pydantic-evals) (push) Has been cancelled
CI / test on 3.10 (lowest-versions) (push) Has been cancelled
CI / test on 3.11 (lowest-versions) (push) Has been cancelled
CI / test on 3.12 (lowest-versions) (push) Has been cancelled
CI / test on 3.13 (lowest-versions) (push) Has been cancelled
CI / test on 3.14 (lowest-versions) (push) Has been cancelled
CI / test examples on 3.11 (push) Has been cancelled
CI / test examples on 3.12 (push) Has been cancelled
CI / test examples on 3.13 (push) Has been cancelled
CI / test examples on 3.14 (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / check (push) Has been cancelled
CI / deploy-docs (push) Has been cancelled
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
from typing import TYPE_CHECKING, cast
|
|
|
|
import pytest
|
|
|
|
if TYPE_CHECKING:
|
|
from vcr.cassette import Cassette
|
|
|
|
from tests.cassette_utils import CassetteContext
|
|
|
|
|
|
@pytest.fixture(scope='function')
|
|
def cassette_ctx(request: pytest.FixtureRequest, vcr: Cassette) -> CassetteContext:
|
|
"""Unified cassette verification context for model tests.
|
|
|
|
Returns a CassetteContext for tests with a 'provider' parameter, or for
|
|
non-parametrized tests (defaulting to 'vcr' provider).
|
|
"""
|
|
from tests.cassette_utils import CassetteContext
|
|
|
|
provider = 'vcr'
|
|
if callspec := getattr(request.node, 'callspec', None): # pyright: ignore[reportUnknownMemberType,reportUnknownArgumentType]
|
|
params = cast(dict[str, object], callspec.params)
|
|
p = params.get('provider')
|
|
if isinstance(p, str): # pragma: no branch
|
|
provider = p
|
|
|
|
test_module: str = request.node.fspath.basename.replace('.py', '') # pyright: ignore[reportUnknownMemberType,reportUnknownVariableType]
|
|
test_dir = Path(request.node.fspath).parent # pyright: ignore[reportUnknownMemberType,reportUnknownArgumentType]
|
|
return CassetteContext(
|
|
provider=provider,
|
|
vcr=vcr,
|
|
test_name=request.node.name, # pyright: ignore[reportUnknownMemberType,reportUnknownArgumentType]
|
|
test_module=test_module, # pyright: ignore[reportUnknownArgumentType]
|
|
test_dir=test_dir,
|
|
)
|