РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
289 of 307 menu

Атрибут timeout

Атрибут timeout применяется к экземпляру класса TestClient и задаёт максимальное время ожидания ответа при выполнении тестового запроса к приложению. Значение передаётся в конструктор класса TestClient и хранится в одноимённом атрибуте. Если обработчик не успевает ответить за указанное время, поднимается исключение TimeoutException. По умолчанию атрибут не задан, то есть ожидание не ограничено.

Синтаксис

from fastapi.testclient import TestClient client = TestClient(app, timeout=5)

Значение timeout указывается в секундах и может быть целым или дробным числом. Прочитать текущее значение можно через атрибут timeout экземпляра клиента.

Пример

Давайте создадим приложение с быстрым обработчиком и клиент с таймаутом в 5 секунд:

from fastapi import FastAPI from fastapi.testclient import TestClient app = FastAPI() @app.get('/') def index(): return {'text': 'hello'} client = TestClient(app, timeout=5) res = client.get('/') print(res.json())

Результат выполнения кода:

{'text': 'hello'}

Пример

Давайте прочитаем значение атрибута timeout:

from fastapi import FastAPI from fastapi.testclient import TestClient app = FastAPI() client = TestClient(app, timeout=3.5) print(client.timeout)

Результат выполнения кода:

3.5

Пример

Давайте проверим, что медленный обработчик не успевает ответить за указанный таймаут:

import time from fastapi import FastAPI from fastapi.testclient import TestClient app = FastAPI() @app.get('/slow') def slow(): time.sleep(2) return {'text': 'done'} client = TestClient(app, timeout=0.5) try: res = client.get('/slow') except Exception as e: print(type(e).__name__)

Результат выполнения кода:

"TimeoutException"

Смотрите также

  • класс TestClient,
    который используется для тестирования приложения FastAPI
  • атрибут app,
    который хранит тестируемое приложение
  • атрибут base_url,
    который задаёт базовый адрес тестовых запросов
  • атрибут follow_redirects,
    который управляет следованием по перенаправлениям
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить