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

Метод invoke

Метод invoke применяется к экземпляру класса FlaskCliRunner и запускает CLI-команду приложения Flask в изолированном режиме. Первым параметром передаётся объект cli - группа команд приложения. Вторым параметром передаётся список аргументов args, которые нужно выполнить. Третьим необязательным параметром передаётся словарь input для подстановки значений в интерактивные запросы. Четвёртым необязательным параметром передаётся env - словарь переменных окружения. Метод возвращает объект Result с атрибутами exit_code, output и exception.

Синтаксис

runner.invoke(cli, args, input=None, env=None, catch_exceptions=True)

Пример

Давайте определим CLI-команду и вызовем её в тесте через метод invoke:

from flask import Flask app = Flask(__name__) @app.cli.command('hello') def hello(): print('hello')
from app import app from flask.testing import FlaskCliRunner runner = app.test_cli_runner() res = runner.invoke(args=['hello']) print(res.output)

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

"hello"

Пример

Давайте проверим код возврата exit_code после выполнения команды:

from app import app from flask.testing import FlaskCliRunner runner = app.test_cli_runner() res = runner.invoke(args=['hello']) print(res.exit_code)

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

0

Пример

Давайте передадим значение через параметр input для интерактивной команды:

from flask import Flask app = Flask(__name__) @app.cli.command('ask') def ask(): name = input('name: ') print('user ' + name)
from app import app from flask.testing import FlaskCliRunner runner = app.test_cli_runner() res = runner.invoke(args=['ask'], input='abcde\n') print(res.output)

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

"name: user abcde"

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

  • класс FlaskCliRunner,
    который запускает CLI-команды в тестах
  • метод open,
    который открывает сессию запроса в тестах
  • класс TestResponse,
    который представляет ответ приложения в тестах
  • атрибут status_code,
    который хранит код состояния ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить