diff options
author | Joshua Storck <joshua.storck@twosigma.com> | 2019-05-31 11:21:02 -0400 |
---|---|---|
committer | Joshua Storck <joshua.storck@twosigma.com> | 2019-05-31 11:21:02 -0400 |
commit | af24c8de54091afe9752c4718272a9dde8746598 (patch) | |
tree | bc3a7f4b55deafb4f2d85311f5f2a6bf0a3d73a8 /tests/test_context.py | |
parent | 0b1e32b0d6d44590f0dae2e28b99bd7ccb6579f7 (diff) | |
download | click-af24c8de54091afe9752c4718272a9dde8746598.tar.gz |
Adding support to the context to distinguish the source of a command line parameter
Diffstat (limited to 'tests/test_context.py')
-rw-r--r-- | tests/test_context.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/test_context.py b/tests/test_context.py index 35933be..7d3d459 100644 --- a/tests/test_context.py +++ b/tests/test_context.py @@ -256,3 +256,45 @@ def test_exit_not_standalone(): ctx.exit(0) assert cli.main([], 'test_exit_not_standalone', standalone_mode=False) == 0 + +def test_parameter_source_default(): + @click.command() + @click.pass_context + @click.option("-o", "--option", default=1) + def cli(ctx, option): + assert ctx.get_parameter_source("option") == click.ParameterSource.DEFAULT + + cli.main([], "test_parameter_source_default", standalone_mode=False) == 0 + + +def test_parameter_source_commandline(): + @click.command() + @click.pass_context + @click.option("-o", "--option", default=1) + def cli(ctx, option): + assert ctx.get_parameter_source("option") == click.ParameterSource.COMMANDLINE + + cli.main(["-o", "1"], "test_parameter_source_commandline", standalone_mode=False) == 0 + cli.main(["--option", "1"], "test_parameter_source_default", standalone_mode=False) == 0 + + +def test_parameter_source_environment(runner): + @click.command() + @click.pass_context + @click.option("-o", "--option", default=1) + def cli(ctx, option): + assert ctx.get_parameter_source("option") == click.ParameterSource.ENVIRONMENT + + runner.invoke(cli, [], prog_name="test_parameter_source_environment", env={"CLI_OPTION": "1"}, + standalone_mode=False) + +def test_parameter_source_environment_variable_specified(runner): + @click.command() + @click.pass_context + @click.option("-o", "--option", default=1, envvar="NAME") + def cli(ctx, option): + assert ctx.get_parameter_source("option") == click.ParameterSource.ENVIRONMENT + + runner.invoke(cli, [], prog_name="test_parameter_source_environment", env={"NAME": "1"}, + standalone_mode=False) + |