Атрибут cookie_jar
Атрибут cookie_jar применяется к экземпляру класса
FlaskClient и возвращает объект хранилища cookie.
Этот объект позволяет читать, добавлять и удалять cookie,
которые клиент отправляет и получает при тестовых запросах.
Атрибут особенно полезен при тестировании аутентификации,
сессий и другой логики, зависящей от cookie.
Объект cookie_jar поддерживает методы
set, get, delete и
clear, а также допускает итерацию по всем
сохранённым cookie.
Синтаксис
client.cookie_jar
Пример
Давайте создадим тестовый клиент и прочитаем cookie, установленный сервером в ответе на запрос:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
res = make_response('hello')
res.set_cookie('user', 'abcde')
return res
client = app.test_client()
client.get('/')
for cookie in client.cookie_jar:
print(cookie.name, cookie.value)
Результат выполнения кода:
"user abcde"
Пример
Давайте вручную добавим cookie в хранилище клиента перед отправкой запроса:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return request.cookies.get('user', 'guest')
client = app.test_client()
client.cookie_jar.set('user', 'abcde', domain='localhost')
res = client.get('/')
print(res.get_data(as_text=True))
Результат выполнения кода:
"abcde"
Пример
Давайте удалим cookie из хранилища и убедимся, что сервер его больше не получает:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return request.cookies.get('user', 'guest')
client = app.test_client()
client.cookie_jar.set('user', 'abcde', domain='localhost')
client.cookie_jar.delete('user', domain='localhost')
res = client.get('/')
print(res.get_data(as_text=True))
Результат выполнения кода:
"guest"
Смотрите также
-
класс
FlaskClient,
которому принадлежит данный атрибут -
метод
get,
который выполняет GET-запрос через тестовый клиент -
метод
post,
который выполняет POST-запрос через тестовый клиент -
атрибут
application,
который хранит тестируемое приложение Flask