Атрибут headers класса TestClient
Атрибут headers применяется к экземпляру класса
TestClient и представляет собой словарь заголовков.
Эти заголовки автоматически подставляются в каждый
HTTP-запрос, который выполняет клиент.
Это удобно, когда нужно задать общие заголовки,
например Authorization или User-Agent,
и не повторять их при каждом вызове метода.
Значением атрибута является обычный словарь Python, где ключи - имена заголовков, а значения - их содержимое. Атрибут можно изменять напрямую, добавляя или удаляя отдельные заголовки.
Синтаксис
client.headers
Пример
Давайте создадим приложение FastAPI и тестовый клиент,
у которого задан заголовок User-Agent:
from fastapi import FastAPI
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/')
def index():
return {'text': 'hello'}
client = TestClient(app)
client.headers['User-Agent'] = 'abcde'
res = client.get('/')
print(res.request.headers['User-Agent'])
Результат выполнения кода:
"abcde"
Пример
Давайте добавим заголовок авторизации и проверим,
что сервер его получает через объект Request:
from fastapi import FastAPI, Request
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/')
def index(request: Request):
token = request.headers.get('Authorization')
return {'token': token}
client = TestClient(app)
client.headers['Authorization'] = 'Bearer abcde'
res = client.get('/')
print(res.json())
Результат выполнения кода:
{'token': 'Bearer abcde'}
Пример
Давайте зададим несколько заголовков сразу и убедимся, что они передаются в запросе:
from fastapi import FastAPI, Request
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/')
def index(request: Request):
return {
'user_agent': request.headers.get('User-Agent'),
'accept': request.headers.get('Accept')
}
client = TestClient(app)
client.headers['User-Agent'] = 'abcde'
client.headers['Accept'] = 'application/json'
res = client.get('/')
print(res.json())
Результат выполнения кода:
{'user_agent': 'abcde', 'accept': 'application/json'}
Смотрите также
-
класс
TestClient,
который используется для тестирования приложений FastAPI -
атрибут
cookies,
который задаёт куки по умолчанию для запросов -
атрибут
app,
который хранит тестируемое приложение FastAPI -
метод
get,
который выполняет GET-запрос к приложению