Browse Source

Add possible overriding of builtin cli cmds

pull/2053/head
Michael Recachinas 8 years ago
parent
commit
49a298791f
  1. 6
      flask/cli.py
  2. 13
      tests/test_cli.py

6
flask/cli.py

@ -336,15 +336,15 @@ class FlaskGroup(AppGroup):
#
# This also means that the script stays functional in case the
# application completely fails.
rv = AppGroup.get_command(self, ctx, name)
if rv is not None:
return rv
builtin_rv = AppGroup.get_command(self, ctx, name)
info = ctx.ensure_object(ScriptInfo)
try:
rv = info.load_app().cli.get_command(ctx, name)
if rv is not None:
return rv
elif builtin_rv is not None:
return builtin_rv
except NoAppException:
pass

13
tests/test_cli.py

@ -190,3 +190,16 @@ def test_flaskgroup():
result = runner.invoke(cli, ['test'])
assert result.exit_code == 0
assert result.output == 'flaskgroup\n'
def test_override_builtin_cli():
cli = FlaskGroup(create_app=lambda info: Flask('override_builtin'))
@cli.command('run', help="foo")
def run():
click.echo(current_app.name)
runner = CliRunner()
result = runner.invoke(cli, ['run'])
assert result.exit_code == 0
assert result.output == 'override_builtin\n'

Loading…
Cancel
Save