summaryrefslogtreecommitdiff
path: root/tests/test_defaults.py
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2014-08-11 11:26:46 +0200
committerArmin Ronacher <armin.ronacher@active-4.com>2014-08-11 11:26:46 +0200
commitc8d3300a2467d3a017aac1d24a92cb254ce921fe (patch)
tree9221069d4d1dbd5cf9b95ef26317ed890c8cf276 /tests/test_defaults.py
parent8d0dfa5c3751ff37bccaa7a176a2ae902c84d00d (diff)
downloadclick-c8d3300a2467d3a017aac1d24a92cb254ce921fe.tar.gz
Added support for multiple defaults on options and nargs
Diffstat (limited to 'tests/test_defaults.py')
-rw-r--r--tests/test_defaults.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_defaults.py b/tests/test_defaults.py
new file mode 100644
index 0000000..dba5a9c
--- /dev/null
+++ b/tests/test_defaults.py
@@ -0,0 +1,46 @@
+import click
+
+
+def test_basic_defaults(runner):
+ @click.command()
+ @click.option('--foo', default=42, type=click.FLOAT)
+ def cli(foo):
+ assert type(foo) is float
+ click.echo('FOO:[%s]' % foo)
+
+ result = runner.invoke(cli, [])
+ assert not result.exception
+ assert 'FOO:[42.0]' in result.output
+
+
+def test_multiple_defaults(runner):
+ @click.command()
+ @click.option('--foo', default=[23, 42], type=click.FLOAT,
+ multiple=True)
+ def cli(foo):
+ for item in foo:
+ assert type(item) is float
+ click.echo(item)
+
+ result = runner.invoke(cli, [])
+ assert not result.exception
+ assert result.output.splitlines() == [
+ '23.0',
+ '42.0',
+ ]
+
+
+def test_nargs_plus_multiple(runner):
+ @click.command()
+ @click.option('--arg', default=((1, 2), (3, 4)),
+ nargs=2, multiple=True, type=click.INT)
+ def cli(arg):
+ for item in arg:
+ click.echo('<%d|%d>' % item)
+
+ result = runner.invoke(cli, [])
+ assert not result.exception
+ assert result.output.splitlines() == [
+ '<1|2>',
+ '<3|4>',
+ ]