diff options
author | Nicholas Wiles <nwiles@google.com> | 2017-03-26 20:44:44 -0700 |
---|---|---|
committer | Nicholas Wiles <nwiles@google.com> | 2017-03-26 20:44:44 -0700 |
commit | dcc07195f9d3c120d419cb8d2d1d732e61f6f289 (patch) | |
tree | c47d60b1727c4de0cb71e8b06aac335b2e043a59 | |
parent | 1d0b39428d6112702ceea1628822b6e9bad1796c (diff) | |
download | click-dcc07195f9d3c120d419cb8d2d1d732e61f6f289.tar.gz |
Updated tests for autocompletion
-rw-r--r-- | click/_bashcomplete.py | 9 | ||||
-rw-r--r-- | examples/bashcompletion/bashcompletion.py | 2 | ||||
-rw-r--r-- | tests/test_bashcomplete.py | 20 |
3 files changed, 24 insertions, 7 deletions
diff --git a/click/_bashcomplete.py b/click/_bashcomplete.py index 15eb980..31ca859 100644 --- a/click/_bashcomplete.py +++ b/click/_bashcomplete.py @@ -38,7 +38,7 @@ def resolve_ctx(cli, prog_name, args): return ctx -def get_choices(cli, prog_name, args, incomplete, cwords, cword): +def get_choices(cli, prog_name, args, incomplete): ctx = resolve_ctx(cli, prog_name, args) if ctx is None: return @@ -60,9 +60,8 @@ def get_choices(cli, prog_name, args, incomplete, cwords, cword): try: if callable(param.autocompletion): choices.extend(param.autocompletion(ctx=ctx, - incomplete=incomplete, - cwords=cwords, - cword=cword)) + args=args, + incomplete=incomplete)) else: choices.extend(param.autocompletion) except AttributeError: @@ -83,7 +82,7 @@ def do_complete(cli, prog_name): except IndexError: incomplete = '' - for item in get_choices(cli, prog_name, args, incomplete, cwords, cword): + for item in get_choices(cli, prog_name, args, incomplete): echo(item) return True diff --git a/examples/bashcompletion/bashcompletion.py b/examples/bashcompletion/bashcompletion.py index f3f9dcd..f338c53 100644 --- a/examples/bashcompletion/bashcompletion.py +++ b/examples/bashcompletion/bashcompletion.py @@ -14,7 +14,7 @@ def cmd1(count, first, last): for c in range(count): click.echo('Name: %s %s' % (first, last)) -def get_env_vars(ctx, incomplete, cwords, cword): +def get_env_vars(ctx, args, incomplete): return os.environ.keys() @cli.command() diff --git a/tests/test_bashcomplete.py b/tests/test_bashcomplete.py index f75a236..2abd610 100644 --- a/tests/test_bashcomplete.py +++ b/tests/test_bashcomplete.py @@ -14,7 +14,25 @@ def test_basic(): def sub(local_opt): pass - assert list(get_choices(cli, 'lol', [], '')) == ['sub'] + COLORS = ['red', 'green', 'blue'] + @cli.command() + @click.argument('color', autocompletion=COLORS) + def sub2(color): + pass + + def get_colors(ctx, args, incomplete): + return COLORS + + @cli.command() + @click.argument('color', autocompletion=get_colors) + def sub3(color): + pass + + assert list(get_choices(cli, 'lol', [], '')) == ['sub', 'sub2', 'sub3'] assert list(get_choices(cli, 'lol', [], '-')) == ['--global-opt'] assert list(get_choices(cli, 'lol', ['sub'], '')) == [] assert list(get_choices(cli, 'lol', ['sub'], '-')) == ['--local-opt'] + assert list(get_choices(cli, 'lol', ['sub2'], '')) == COLORS + assert list(get_choices(cli, 'lol', ['sub2'], 'g')) == ['green'] + assert list(get_choices(cli, 'lol', ['sub3'], '')) == COLORS + assert list(get_choices(cli, 'lol', ['sub2'], 'b')) == ['blue'] |