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

Атрибут dependency_overrides

Атрибут dependency_overrides применяется к приложению FastAPI и представляет собой обычный словарь. Ключом выступает исходная функция-зависимость, а значением - функция, которой её нужно заменить. Такой механизм удобен для тестирования: он позволяет подменить реальную зависимость, например обращение к базе данных, на простую заглушку. Изменения вступают в силу сразу после добавления пары и действуют до тех пор, пока пара не будет удалена.

Синтаксис

app.dependency_overrides[original_dependency] = override_dependency

Чтобы вернуть всё как было, словарь очищают:

app.dependency_overrides.clear()

Пример

Давайте объявим зависимость и подменим её на заглушку:

from fastapi import FastAPI, Depends app = FastAPI() def get_value(): return 'real' def get_value_override(): return 'fake' app.dependency_overrides[get_value] = get_value_override @app.get('/') def index(value: str = Depends(get_value)): return {'value': value}

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

{"value": "fake"}

Пример

Давайте подменим зависимость в тесте и затем очистим словарь:

from fastapi.testclient import TestClient from main import app, get_value def get_value_override(): return 'fake' client = TestClient(app) app.dependency_overrides[get_value] = get_value_override res = client.get('/') print(res.json()) app.dependency_overrides.clear() print(app.dependency_overrides)

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

{'value': 'fake'} {}

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

  • класс FastAPI,
    к которому относится данный атрибут
  • метод include_router,
    который подключает роутеры к приложению
  • метод mount,
    который монтирует подприложение по указанному пути
  • метод exception_handler,
    который регистрирует обработчик исключений
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить