Атрибут cookies класса TestClient
Атрибут cookies принадлежит классу TestClient и представляет собой объект Cookies из библиотеки httpx. Он хранит куки, которые сервер установил в ответах на предыдущие запросы, и позволяет читать их, изменять или удалять перед отправкой следующих запросов. Доступ к атрибуту осуществляется через экземпляр клиента, например client.cookies.
Синтаксис
client.cookies
Пример
Давайте создадим приложение, которое устанавливает куку, и прочитаем её через атрибут cookies:
from fastapi import FastAPI, Response
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/set')
def set_cookie(res: Response):
res.set_cookie(key='user', value='abcde')
return {'text': 'hello'}
client = TestClient(app)
client.get('/set')
print(client.cookies)
Результат выполнения кода:
<Cookies[<Cookie user=abcde for domain=testserver.local />]>
Пример
Давайте прочитаем конкретную куку по имени через метод get:
from fastapi import FastAPI, Response
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/set')
def set_cookie(res: Response):
res.set_cookie(key='user', value='abcde')
return {'text': 'hello'}
client = TestClient(app)
client.get('/set')
print(client.cookies.get('user'))
Результат выполнения кода:
"abcde"
Пример
Давайте установим куку вручную через атрибут cookies и отправим её на сервер:
from fastapi import FastAPI, Request
from fastapi.testclient import TestClient
app = FastAPI()
@app.get('/read')
def read_cookie(req: Request):
return {'user': req.cookies.get('user')}
client = TestClient(app)
client.cookies.set('user', 'abcde')
res = client.get('/read')
print(res.json())
Результат выполнения кода:
{"user": "abcde"}
Смотрите также
-
класс
TestClient,
который используется для тестирования приложения FastAPI -
атрибут
headers,
который хранит заголовки запросов клиента -
атрибут
app,
который хранит тестируемое приложение FastAPI -
метод
request,
который выполняет произвольный HTTP-запрос