Метод test_cli_runner
Метод test_cli_runner применяется к приложению
Flask и возвращает объект FlaskCliRunner, который
позволяет вызывать CLI-команды приложения без запуска
реального сервера. Это особенно полезно при написании
тестов для пользовательских команд, зарегистрированных
через app.cli. Метод не принимает обязательных
параметров и может использоваться внутри тестовых
функций.
Синтаксис
app.test_cli_runner()
Пример
Давайте создадим простое приложение с пользовательской
CLI-командой и вызовем её через test_cli_runner:
from flask import Flask
app = Flask(__name__)
@app.cli.command('hello')
def hello_command():
print('hello')
runner = app.test_cli_runner()
res = runner.invoke(args=['hello'])
print(res.output)
Результат выполнения кода:
"hello\n"
Пример
Давайте передадим аргумент в CLI-команду и проверим код возврата:
from flask import Flask
app = Flask(__name__)
@app.cli.command('greet')
def greet_command():
print('abcde')
runner = app.test_cli_runner()
res = runner.invoke(args=['greet'])
print(res.exit_code)
print(res.output)
Результат выполнения кода:
0
"abcde\n"
Пример
Давайте проверим обработку исключения внутри CLI-команды:
from flask import Flask
app = Flask(__name__)
@app.cli.command('fail')
def fail_command():
raise ValueError('user error')
runner = app.test_cli_runner()
res = runner.invoke(args=['fail'])
print(res.exit_code)
print(res.exception)
Результат выполнения кода:
1
ValueError('user error')
Смотрите также
-
метод
test_client,
который создаёт тестовый HTTP-клиент приложения -
метод
test_request_context,
который создаёт тестовый контекст запроса -
атрибут
cli,
который хранит группу CLI-команд приложения -
метод
run,
который запускает приложение Flask