summaryrefslogtreecommitdiff
path: root/tests/test_context.py
diff options
context:
space:
mode:
authorJoshua Storck <joshua.storck@twosigma.com>2019-05-31 11:21:02 -0400
committerJoshua Storck <joshua.storck@twosigma.com>2019-05-31 11:21:02 -0400
commitaf24c8de54091afe9752c4718272a9dde8746598 (patch)
treebc3a7f4b55deafb4f2d85311f5f2a6bf0a3d73a8 /tests/test_context.py
parent0b1e32b0d6d44590f0dae2e28b99bd7ccb6579f7 (diff)
downloadclick-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.py42
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)
+