--- title: Подготовка и тестирование description: Публичные контракты проверки запроса без сети и записывающих Zapros handlers. sources: - eazy_sdk.preparation - eazy_sdk.testing api_fingerprint: "sha256:b114bef1c5d6d35e5eb9bba73c688f0e74316cc5d2b55cebca5c4c0a9356b222" --- ## `PrepareOptions` | Поле | Тип | Значение по умолчанию | Назначение | |---|---|---|---| | `resolve_managed` | `bool` | `False` | Разрешить авторизацию, зависимости, защиты и ключи | | `call_options` | `CallOptions \| None` | `None` | Параметры подготовки конкретного вызова | Чистый режим не запускает поставщиков управляемых значений. Если без них запрос нельзя подготовить, `PreparationIncompleteError.requirements` перечисляет недостающие возможности. Полный режим использует тестовые поставщики, но не отправляет запрос. Его кеш защит отделён от рабочего клиента. ## `PreparedCall` `.prepare(...)` останавливает обычный конвейер перед отправкой и возвращает неизменяемое безопасное представление. | Поле | Тип | Содержимое | |---|---|---| | `method` | `str` | HTTP-метод | | `url` | `str` | Полный безопасный URL | | `target` | `str` | Путь и query без источника | | `query` | `tuple[PreparedValue, ...]` | Параметры query | | `headers` | `tuple[PreparedValue, ...]` | Заголовки | | `cookies` | `tuple[PreparedValue, ...]` | Cookies | | `body` | `object \| None` | Семантическое тело или `` | | `encoded_body` | `bytes \| None` | Готовые байты, если тело не секретное и буферизовано | | `protocol` | `str` | Версия HTTP | Секретные заголовки, cookies, query и тело заменяются на ``. Для секретного тела `encoded_body` равен `None`. ## Записывающие handlers `RecordingHandler` и `AsyncRecordingHandler` наследуют Zapros `BaseHandler` и `AsyncBaseHandler`. Они сохраняют фактические `Request` на границе транспорта и возвращают заданный `Response`. | Член | Контракт | |---|---| | `requests` | Неизменяемый снимок всех запросов | | `last_request` | Последний запрос; без записей вызывает `AssertionError` | | `assert_count(expected)` | Проверяет число запросов | | `assert_request(index=-1, method=None, url=None)` | Проверяет метод и URL выбранной записи | | `close_calls` | Число вызовов `close()` или `aclose()` | Полный запускаемый пример находится в {doc}`руководстве по тестированию `. ## Дальше - {doc}`Проверить SDK локально ` - {doc}`Проверить API клиента ` - {doc}`Проверить запрос как значение `