python-click/tests/test_bashcomplete.py

63 lines
1.7 KiB
Python
Raw Normal View History

2016-04-06 18:13:57 +02:00
# -*- coding: utf-8 -*-
import click
from click._bashcomplete import get_choices
2017-07-19 20:06:01 +02:00
def test_single_command():
@click.command()
@click.option('--local-opt')
def cli(local_opt):
pass
assert list(get_choices(cli, 'lol', [], '-')) == ['--local-opt']
assert list(get_choices(cli, 'lol', [], '')) == []
def test_small_chain():
2016-04-06 18:13:57 +02:00
@click.group()
@click.option('--global-opt')
def cli(global_opt):
pass
@cli.command()
@click.option('--local-opt')
def sub(local_opt):
pass
assert list(get_choices(cli, 'lol', [], '')) == ['sub']
assert list(get_choices(cli, 'lol', [], '-')) == ['--global-opt']
assert list(get_choices(cli, 'lol', ['sub'], '')) == []
assert list(get_choices(cli, 'lol', ['sub'], '-')) == ['--local-opt']
2017-07-19 20:06:01 +02:00
def test_long_chain():
@click.group('cli')
@click.option('--cli-opt')
def cli(cli_opt):
pass
@cli.group('asub')
@click.option('--asub-opt')
def asub(asub_opt):
pass
@asub.group('bsub')
@click.option('--bsub-opt')
def bsub(bsub_opt):
pass
@bsub.command('csub')
@click.option('--csub-opt')
def csub(csub_opt):
pass
assert list(get_choices(cli, 'lol', [], '-')) == ['--cli-opt']
assert list(get_choices(cli, 'lol', [], '')) == ['asub']
assert list(get_choices(cli, 'lol', ['asub'], '-')) == ['--asub-opt']
assert list(get_choices(cli, 'lol', ['asub'], '')) == ['bsub']
assert list(get_choices(cli, 'lol', ['asub', 'bsub'], '-')) == ['--bsub-opt']
assert list(get_choices(cli, 'lol', ['asub', 'bsub'], '')) == ['csub']
assert list(get_choices(cli, 'lol', ['asub', 'bsub', 'csub'], '-')) == ['--csub-opt']
assert list(get_choices(cli, 'lol', ['asub', 'bsub', 'csub'], '')) == []