Тестирование¶
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.
SwaggerFakeTransport ¶
Bases: FakeTransport
Fake transport that validates requests against local Swagger operations.
add_operation ¶
add_operation(
operation_key: str,
payload: JsonValue,
*,
status_code: int = 200,
headers: Mapping[str, str] | None = None,
) -> SwaggerFakeTransport
Register response for one Swagger operation key.
add_success_operation ¶
add_success_operation(
operation_key: str,
*,
payload: JsonValue | None = None,
headers: Mapping[str, str] | None = None,
) -> SwaggerFakeTransport
Register a deterministic success response for one Swagger operation.
operation ¶
Return operation metadata by canonical key.
invoke_binding ¶
invoke_binding(
binding: DiscoveredSwaggerBinding,
*,
client: AvitoClient | None = None,
) -> object
Build and invoke SDK call from discovered Swagger binding metadata.
SwaggerRoute
dataclass
¶
SwaggerRoute(
operation: SwaggerOperation,
payload: JsonValue,
status_code: int,
headers: Mapping[str, str],
)
Registered fake route bound to one Swagger operation.
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().
error_payload ¶
Build deterministic JSON error payload for contract tests.
Контракт¶
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.