summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Wiles <nwiles@google.com>2017-03-26 20:44:44 -0700
committerNicholas Wiles <nwiles@google.com>2017-03-26 20:44:44 -0700
commitdcc07195f9d3c120d419cb8d2d1d732e61f6f289 (patch)
treec47d60b1727c4de0cb71e8b06aac335b2e043a59
parent1d0b39428d6112702ceea1628822b6e9bad1796c (diff)
downloadclick-dcc07195f9d3c120d419cb8d2d1d732e61f6f289.tar.gz
Updated tests for autocompletion
-rw-r--r--click/_bashcomplete.py9
-rw-r--r--examples/bashcompletion/bashcompletion.py2
-rw-r--r--tests/test_bashcomplete.py20
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']