Flask Test CLI Runner API
FlaskCliRunner es un CliRunner basado en Click, utilizado para probar comandos CLI de Flask.
Medianteapp.test_cli_runner()Crear una instancia.
Forma de creación
| Método | Descripción |
|---|---|
| app.test_cli_runner(**kwargs) | Crea el ejecutor de pruebas CLI. Los kwargs se pasan al constructor de CliRunner. |
Métodos principales
| Método | Descripción |
|---|---|
| invoke(cli=None, args=None, **kwargs) | Invoca un comando CLI. Utiliza app.cli por defecto. Devuelve un objeto click.testing.Result. |
Atributos del objeto Result
| Atributo | Descripción |
|---|---|
| exit_code | Código de salida del comando. 0 indica éxito. |
| output | Contenido de la salida estándar del comando (str) |
| exception | Si el comando lanza una excepción, aquí se incluye el objeto de excepción. |
Ejemplo de código
Ejemplo
from app import create_app
app = create_app()
runner = app.test_cli_runner()
# Probar el comando integrado
result = runner.invoke(args=["routes"])
assert result.exit_code == 0
assert "/api/posts" in result.output
# Probar el comando personalizado
result = runner.invoke(args=["init-db"])
assert result.exit_code == 0
# Probar el comando con argumentos
result = runner.invoke(args=["greet", "--name", "EJEMPLO"])
assert "EJEMPLO" in result.output
# Probar directamente el grupo CLI de la aplicación con invoke
result = runner.invoke(app.cli, ["run", "--help"])
assert result.exit_code == 0
app = create_app()
runner = app.test_cli_runner()
# Probar el comando integrado
result = runner.invoke(args=["routes"])
assert result.exit_code == 0
assert "/api/posts" in result.output
# Probar el comando personalizado
result = runner.invoke(args=["init-db"])
assert result.exit_code == 0
# Probar el comando con argumentos
result = runner.invoke(args=["greet", "--name", "EJEMPLO"])
assert "EJEMPLO" in result.output
# Probar directamente el grupo CLI de la aplicación con invoke
result = runner.invoke(app.cli, ["run", "--help"])
assert result.exit_code == 0