diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2014-05-05 23:17:06 +0200 |
---|---|---|
committer | Armin Ronacher <armin.ronacher@active-4.com> | 2014-05-05 23:17:06 +0200 |
commit | 2e8354a82505cf5ef6f2f93e6403db0a23b8dc8f (patch) | |
tree | 4033f38feb27dc3617b6f367ce6309af55a0e54e /tests/test_arguments.py | |
parent | db9a9c22632543e66ee3e66936162ba0f47d4303 (diff) | |
download | click-2e8354a82505cf5ef6f2f93e6403db0a23b8dc8f.tar.gz |
Added support for nargs in other places
Diffstat (limited to 'tests/test_arguments.py')
-rw-r--r-- | tests/test_arguments.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/test_arguments.py b/tests/test_arguments.py new file mode 100644 index 0000000..c8d33e1 --- /dev/null +++ b/tests/test_arguments.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +import click + + +def test_nargs_star(runner): + @click.command() + @click.argument('src', nargs=-1) + @click.argument('dst') + def copy(src, dst): + click.echo('src=%s' % '|'.join(src)) + click.echo('dst=%s' % dst) + + result = runner.invoke(copy, ['foo.txt', 'bar.txt', 'dir']) + assert not result.exception + assert result.output.splitlines() == [ + 'src=foo.txt|bar.txt', + 'dst=dir', + ] + + +def test_nargs_tup(runner): + @click.command() + @click.argument('name', nargs=1) + @click.argument('point', nargs=2, type=click.INT) + def copy(name, point): + click.echo('name=%s' % name) + click.echo('point=%d/%d' % point) + + result = runner.invoke(copy, ['peter', '1', '2']) + assert not result.exception + assert result.output.splitlines() == [ + 'name=peter', + 'point=1/2', + ] + + +def test_nargs_err(runner): + @click.command() + @click.argument('x') + def copy(x): + click.echo(x) + + result = runner.invoke(copy, ['foo']) + assert not result.exception + assert result.output == 'foo\n' + + result = runner.invoke(copy, ['foo', 'bar']) + assert result.exit_code == 2 + assert 'Got unexpected extra argument (bar)' in result.output |