1b74b06753
Cut comment and docstring volume roughly in half across src, tests, examples, and docs_src: removed comments that restate the adjacent code, leftover development narration, section banners, and self-evident Args/Returns blocks, and compressed the remaining docstrings to a Google-style summary line plus only the detail that earns its place. Kept (and tightened) the load-bearing content: Raises sections, deprecation and version-availability notes, spec/RFC/issue references, why-comments for non-obvious decisions, and all coverage pragmas. The generated mcp_types.v* wire modules are untouched.
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
"""Shared fixtures for the interaction suite."""
|
|
|
|
from functools import partial
|
|
|
|
import pytest
|
|
|
|
from tests.interaction._connect import (
|
|
Connect,
|
|
connect_in_memory,
|
|
connect_over_sse,
|
|
connect_over_streamable_http,
|
|
connect_over_streamable_http_stateless,
|
|
)
|
|
from tests.interaction._requirements import REQUIREMENTS, compute_cells
|
|
|
|
_FACTORIES: dict[str, Connect] = {
|
|
"in-memory": connect_in_memory,
|
|
"streamable-http": connect_over_streamable_http,
|
|
"streamable-http-stateless": connect_over_streamable_http_stateless,
|
|
"sse": connect_over_sse,
|
|
}
|
|
|
|
|
|
def pytest_generate_tests(metafunc: pytest.Metafunc) -> None:
|
|
"""Parametrize `connect` from the test's stacked `@requirement` marks (see `compute_cells`)."""
|
|
if "connect" not in metafunc.fixturenames:
|
|
return
|
|
requirements = [REQUIREMENTS[mark.args[0]] for mark in metafunc.definition.iter_markers("requirement")]
|
|
metafunc.parametrize("connect", compute_cells(requirements), indirect=True)
|
|
|
|
|
|
@pytest.fixture
|
|
def connect(request: pytest.FixtureRequest) -> Connect:
|
|
"""Transport-parametrized connection factory: a test using it runs once per matrix cell.
|
|
|
|
Transport-tied tests (wire recording, bare ClientSession, transports/) connect directly instead.
|
|
"""
|
|
transport, spec_version = request.param
|
|
assert isinstance(transport, str)
|
|
assert isinstance(spec_version, str)
|
|
return partial(_FACTORIES[transport], spec_version=spec_version)
|