Атрибут testing
Атрибут testing применяется к приложению
Flask и управляет режимом тестирования. По
умолчанию он равен False. Если установить
значение True, то Flask будет пробрасывать
исключения наружу, а не превращать их в
стандартные ответы с кодом 500. Это удобно при
написании тестов, так как позволяет увидеть
настоящую причину ошибки. Также в режиме
тестирования отключается обработка ошибок
через зарегистрированные обработчики errorhandler.
Синтаксис
app.testing = True
Пример
Давайте создадим приложение и включим режим тестирования:
from flask import Flask
app = Flask(__name__)
app.testing = True
@app.route('/')
def index():
return 'hello'
Теперь значение атрибута можно проверить:
from flask import Flask
app = Flask(__name__)
app.testing = True
print(app.testing)
Результат выполнения кода:
True
Пример
Давайте посмотрим, как режим тестирования влияет на обработку исключений. Создадим приложение с ошибкой внутри обработчика:
from flask import Flask
app = Flask(__name__)
app.testing = True
@app.route('/')
def index():
raise ValueError('abcde')
При включённом testing и вызове адреса
/ через тестовый клиент исключение
ValueError будет проброшено наружу, а не
превращено в ответ 500. Это позволяет в тестах
проверить тип исключения:
from app import app
client = app.test_client()
try:
client.get('/')
except ValueError as e:
print(e)
Результат выполнения кода:
"abcde"
Смотрите также
-
атрибут
debug,
который включает режим отладки приложения -
метод
test_client,
который создаёт клиент для тестирования -
метод
test_cli_runner,
который создаёт runner для тестирования CLI -
класс
Flask,
который представляет приложение Flask