starlette/tests/conftest.py

24 lines
617 B
Python

from __future__ import annotations
import functools
from typing import Any, Literal
import pytest
from starlette.testclient import TestClient
from tests.types import TestClientFactory
@pytest.fixture
def test_client_factory(
anyio_backend_name: Literal["asyncio", "trio"],
anyio_backend_options: dict[str, Any],
) -> TestClientFactory:
# anyio_backend_name defined by:
# https://anyio.readthedocs.io/en/stable/testing.html#specifying-the-backends-to-run-on
return functools.partial(
TestClient,
backend=anyio_backend_name,
backend_options=anyio_backend_options,
)