Метод test_client
Метод test_client применяется к приложению
Flask и возвращает объект тестового клиента. Этот
объект позволяет отправлять запросы к приложению
напрямую, без запуска реального сервера. Метод
принимает необязательные параметры use_cookies
и response_wrapper, которые управляют
поведением клиента. Полученный клиент имеет методы
get, post, put, patch,
delete и open для отправки запросов
разных типов.
Синтаксис
app.test_client(use_cookies=True, response_wrapper=None)
Пример
Давайте создадим простое приложение и отправим GET-запрос к корневому маршруту:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
client = app.test_client()
res = client.get('/')
print(res.status_code)
print(res.data)
Результат выполнения кода:
200
b'hello'
Пример
Давайте отправим POST-запрос с данными формы:
from flask import Flask, request
app = Flask(__name__)
@app.route('/submit', methods=['POST'])
def submit():
return request.form['name']
client = app.test_client()
res = client.post('/submit', data={'name': 'abcde'})
print(res.data)
Результат выполнения кода:
b'abcde'
Пример
Давайте проверим, что маршрут возвращает JSON-ответ:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api')
def api():
return jsonify({'status': 'ok'})
client = app.test_client()
res = client.get('/api')
print(res.get_json())
Результат выполнения кода:
{'status': 'ok'}
Смотрите также
-
класс
Flask,
который представляет приложение Flask -
метод
test_request_context,
который создаёт контекст запроса для тестирования -
метод
test_cli_runner,
который создаёт тестовый запуск команд CLI -
атрибут
testing,
который включает режим тестирования