Тестирование¶
avito.testing — публичное пространство тестовых утилит для consumer-side
тестов без реального HTTP.
Fake transport¶
Публичные тестовые утилиты SDK.
FakeTransport ¶
Deterministic fake transport for SDK contract tests.
add ¶
Регистрирует один или несколько ответов для HTTP-маршрута.
add_json ¶
add_json(
method: str,
path: str,
payload: JsonValue,
*,
status_code: int = 200,
headers: Mapping[str, str] | None = None,
) -> FakeTransport
Регистрирует JSON-ответ для HTTP-маршрута.
build ¶
Создаёт низкоуровневый Transport поверх fake transport (internal helper).
as_client ¶
Создает публичный AvitoClient поверх fake transport без реального HTTP.
count ¶
Возвращает число перехваченных запросов с опциональной фильтрацией.
last ¶
Возвращает последний перехваченный запрос с опциональной фильтрацией.
RecordedRequest
dataclass
¶
RecordedRequest(
method: str,
path: str,
params: dict[str, str],
headers: dict[str, str],
json_body: JsonValue,
content: bytes,
)
Зафиксированный HTTP-запрос, перехваченный FakeTransport.
json_response ¶
json_response(
payload: JsonValue,
*,
status_code: int = 200,
headers: Mapping[str, str] | None = None,
) -> httpx.Response
Создаёт httpx.Response с JSON-телом для использования в FakeTransport.
route_sequence ¶
Упаковывает несколько ответов в последовательность для FakeTransport.add().
Контракт¶
FakeTransportзаписывает выполненные запросы и отдаёт заранее заданные ответы.json_response()создаёт JSON-ответ для маршрута.route_sequence()задаёт последовательность ответов для retry и stateful-сценариев.FakeTransport.as_client()создаёт полностью инициализированныйAvitoClientповерх fake transport без реального HTTP.RecordedRequestпозволяет проверять method, path, query params, headers и JSON body.
Пользовательские тесты должны работать через публичные утилиты avito.testing,
а не через приватные поля AvitoClient.