Атрибут app
Атрибут app класса TestClient хранит ссылку
на приложение FastAPI, переданное при создании клиента.
Через этот атрибут можно получить доступ к объекту приложения
прямо из теста: проверить маршруты, зависимости, состояние
или обратиться к другим атрибутам FastAPI.
Синтаксис
client.app
Пример
Давайте создадим приложение и тестовый клиент,
а затем выведем тип атрибута app:
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/')
def index():
return {'text': 'hello'}
client = TestClient(app)
print(type(client.app))
Результат выполнения кода:
<class 'fastapi.applications.FastAPI'>
Пример
Давайте через атрибут app получим список маршрутов,
зарегистрированных в приложении:
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/')
def index():
return {'text': 'hello'}
@app.get('/user')
def user():
return {'name': 'abcde'}
client = TestClient(app)
for route in client.app.routes:
print(route.path)
Результат выполнения кода:
/openapi.json
/docs
/docs/oauth2-redirect
/redoc
/
/user
Пример
Давайте сравним атрибут app с исходным объектом приложения,
чтобы убедиться, что это один и тот же экземпляр:
<+python+>
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/')
def index():
return {'text': 'hello'}
client = TestClient(app)
res = client.app is app
print(res)
<-python+>
Результат выполнения кода:
True
Смотрите также
-
класс
TestClient,
который создаёт тестовый клиент для приложения FastAPI -
метод
get,
который отправляет GET-запрос через тестовый клиент -
метод
post,
который отправляет POST-запрос через тестовый клиент -
атрибут
base_url,
который задаёт базовый URL для запросов тестового клиента