diff options
author | Todd Leonhardt <todd.leonhardt@gmail.com> | 2019-07-30 11:10:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-30 11:10:06 -0400 |
commit | a5e52820df8da804347ef5a59519758f547bcb0f (patch) | |
tree | 0a61caf33de2637ea17143cd2f6cd63331a90cbb /cmd2/argparse_custom.py | |
parent | f419192b71f816952b4f160c6b97986a5b8c9fd9 (diff) | |
parent | 6ab2578ae14d4198f2d1c973c168d43611c7c1f3 (diff) | |
download | cmd2-git-a5e52820df8da804347ef5a59519758f547bcb0f.tar.gz |
Merge pull request #743 from python-cmd2/choices_exception
Added more validation to add_argument wrapper
Diffstat (limited to 'cmd2/argparse_custom.py')
-rw-r--r-- | cmd2/argparse_custom.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cmd2/argparse_custom.py b/cmd2/argparse_custom.py index da5410d0..5432314b 100644 --- a/cmd2/argparse_custom.py +++ b/cmd2/argparse_custom.py @@ -346,13 +346,17 @@ def _add_argument_wrapper(self, *args, new_arg = orig_actions_container_add_argument(self, *args, **kwargs) # Verify consistent use of arguments - choice_params = [new_arg.choices, choices_function, choices_method, completer_function, completer_method] - num_set = len(choice_params) - choice_params.count(None) + choices_params = [new_arg.choices, choices_function, choices_method, completer_function, completer_method] + num_params_set = len(choices_params) - choices_params.count(None) - if num_set > 1: - err_msg = ("Only one of the following may be used in an argparser argument at a time:\n" + if num_params_set > 1: + err_msg = ("Only one of the following parameters may be used at a time:\n" "choices, choices_function, choices_method, completer_function, completer_method") raise (ValueError(err_msg)) + elif num_params_set > 0 and new_arg.nargs == 0: + err_msg = ("None of the following parameters can be used for this type of action:\n" + "choices, choices_function, choices_method, completer_function, completer_method") + raise (TypeError(err_msg)) # Set the custom attributes setattr(new_arg, ATTR_NARGS_RANGE, nargs_range) |