summaryrefslogtreecommitdiff
path: root/tests/test_argparse_custom.py
diff options
context:
space:
mode:
authorKevin Van Brunt <kmvanbrunt@gmail.com>2019-07-29 18:02:57 -0400
committerKevin Van Brunt <kmvanbrunt@gmail.com>2019-07-29 18:02:57 -0400
commit89ba3fac402f4c121ebfe38699348d9fd198fd9a (patch)
tree513146bc2a0f3b1746da9618c3423e0cad7e2da5 /tests/test_argparse_custom.py
parentf419192b71f816952b4f160c6b97986a5b8c9fd9 (diff)
downloadcmd2-git-89ba3fac402f4c121ebfe38699348d9fd198fd9a.tar.gz
Raising exception when a choices or completer function is used for an argument that takes no values
Diffstat (limited to 'tests/test_argparse_custom.py')
-rw-r--r--tests/test_argparse_custom.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/tests/test_argparse_custom.py b/tests/test_argparse_custom.py
index 6c6879c8..f5d45fd1 100644
--- a/tests/test_argparse_custom.py
+++ b/tests/test_argparse_custom.py
@@ -39,7 +39,7 @@ def fake_func():
pass
-@pytest.mark.parametrize('args, is_valid', [
+@pytest.mark.parametrize('kwargs, is_valid', [
({'choices': []}, True),
({'choices_function': fake_func}, True),
({'choices_method': fake_func}, True),
@@ -50,14 +50,27 @@ def fake_func():
({'choices_method': fake_func, 'completer_function': fake_func}, False),
({'choices_method': fake_func, 'completer_method': fake_func}, False),
])
-def test_apcustom_invalid_args(args, is_valid):
+def test_apcustom_choices_params_count(kwargs, is_valid):
parser = Cmd2ArgumentParser(prog='test')
try:
- parser.add_argument('name', **args)
+ parser.add_argument('name', **kwargs)
assert is_valid
except ValueError as ex:
assert not is_valid
- assert 'Only one of the following may be used' in str(ex)
+ assert 'Only one of the following parameters' in str(ex)
+
+
+@pytest.mark.parametrize('kwargs', [
+ ({'choices_function': fake_func}),
+ ({'choices_method': fake_func}),
+ ({'completer_function': fake_func}),
+ ({'completer_method': fake_func})
+])
+def test_apcustom_no_choices_when_nargs_is_0(kwargs):
+ with pytest.raises(TypeError) as excinfo:
+ parser = Cmd2ArgumentParser(prog='test')
+ parser.add_argument('name', action='store_true', **kwargs)
+ assert 'None of the following parameters can be used' in str(excinfo.value)
def test_apcustom_usage():