РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
597 of 643 menu

Класс TestResponse

Класс TestResponse используется в тестировании приложений Flask. Он наследуется от класса Response и предоставляет дополнительные методы и атрибуты, упрощающие проверку результатов запросов. Объект этого класса возвращается при вызове методов тестового клиента, таких как get, post и других. Класс позволяет получить доступ к данным ответа, заголовкам, статусу и cookies.

Синтаксис

response = client.get('/path')

Пример

Давайте создадим простое приложение и протестируем его с помощью тестового клиента:

from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'hello'

Теперь напишем тест, который использует TestResponse:

from app import app def test_index(): client = app.test_client() res = client.get('/') assert res.status_code == 200 assert res.data == b'hello'

Результат выполнения кода:

"OK"

Пример

Давайте проверим ответ в формате JSON. Создадим маршрут, возвращающий JSON:

from flask import Flask, jsonify app = Flask(__name__) @app.route('/api') def api(): return jsonify({'name': 'user', 'age': 25})

Теперь напишем тест, который проверяет JSON-ответ:

from app import app def test_api(): client = app.test_client() res = client.get('/api') assert res.status_code == 200 assert res.json == {'name': 'user', 'age': 25}

Результат выполнения кода:

"OK"

Пример

Давайте проверим заголовки ответа и тип контента:

from app import app def test_headers(): client = app.test_client() res = client.get('/') assert res.content_type == 'text/html; charset=utf-8' assert 'Content-Type' in res.headers

Результат выполнения кода:

"OK"

Смотрите также

  • класс TestClient,
    который создаёт тестовый клиент для запросов
  • метод get,
    который выполняет GET-запрос к приложению
  • метод get_data,
    который возвращает тело ответа в виде строки
  • атрибут status_code,
    который содержит HTTP-статус ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить