diff options
Diffstat (limited to 'tests/test_argparse_completer.py')
-rw-r--r-- | tests/test_argparse_completer.py | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/tests/test_argparse_completer.py b/tests/test_argparse_completer.py index 97c75ef3..9e635a42 100644 --- a/tests/test_argparse_completer.py +++ b/tests/test_argparse_completer.py @@ -9,8 +9,8 @@ from typing import List import pytest import cmd2 -from cmd2 import with_argparser, Cmd2ArgumentParser, CompletionError, CompletionItem -from cmd2.utils import StdSim, basic_complete +from cmd2 import with_argparser, Cmd2ArgumentParser, CompletionItem +from cmd2.utils import CompletionError, StdSim, basic_complete from .conftest import run_cmd, complete_tester # Lists used in our tests (there is a mix of sorted and unsorted on purpose) @@ -42,20 +42,20 @@ def completer_function(text: str, line: str, begidx: int, endidx: int) -> List[s def choices_takes_arg_tokens(arg_tokens: argparse.Namespace) -> List[str]: - """Choices function that receives arg_tokens from AutoCompleter""" + """Choices function that receives arg_tokens from ArgparseCompleter""" return [arg_tokens['parent_arg'][0], arg_tokens['subcommand'][0]] def completer_takes_arg_tokens(text: str, line: str, begidx: int, endidx: int, arg_tokens: argparse.Namespace) -> List[str]: - """Completer function that receives arg_tokens from AutoCompleter""" + """Completer function that receives arg_tokens from ArgparseCompleter""" match_against = [arg_tokens['parent_arg'][0], arg_tokens['subcommand'][0]] return basic_complete(text, line, begidx, endidx, match_against) -# noinspection PyMethodMayBeStatic,PyUnusedLocal +# noinspection PyMethodMayBeStatic,PyUnusedLocal,PyProtectedMember class AutoCompleteTester(cmd2.Cmd): - """Cmd2 app that exercises AutoCompleter class""" + """Cmd2 app that exercises ArgparseCompleter class""" def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -181,6 +181,7 @@ class AutoCompleteTester(cmd2.Cmd): choices=one_or_more_choices) nargs_parser.add_argument("--optional", help="a flag with an optional value", nargs=argparse.OPTIONAL, choices=optional_choices) + # noinspection PyTypeChecker nargs_parser.add_argument("--range", help="a flag with nargs range", nargs=(1, 2), choices=range_choices) nargs_parser.add_argument("--remainder", help="a flag wanting remaining", nargs=argparse.REMAINDER, @@ -421,7 +422,7 @@ def test_autocomp_flag_choices_completion(ac_app, flag, text, completions): else: assert first_match is None - # Numbers will be sorted in ascending order and then converted to strings by AutoCompleter + # Numbers will be sorted in ascending order and then converted to strings by ArgparseCompleter if all(isinstance(x, numbers.Number) for x in completions): completions.sort() completions = [str(x) for x in completions] @@ -496,8 +497,8 @@ def test_autocomp_positional_completers(ac_app, pos, text, completions): def test_autocomp_blank_token(ac_app): - """Force a blank token to make sure AutoCompleter consumes them like argparse does""" - from cmd2.argparse_completer import AutoCompleter + """Force a blank token to make sure ArgparseCompleter consumes them like argparse does""" + from cmd2.argparse_completer import ArgparseCompleter blank = '' @@ -507,7 +508,7 @@ def test_autocomp_blank_token(ac_app): endidx = len(line) begidx = endidx - len(text) - completer = AutoCompleter(ac_app.completer_parser, ac_app) + completer = ArgparseCompleter(ac_app.completer_parser, ac_app) tokens = ['completer', '-f', blank, text] completions = completer.complete_command(tokens, text, line, begidx, endidx) assert completions == completions_from_function @@ -518,7 +519,7 @@ def test_autocomp_blank_token(ac_app): endidx = len(line) begidx = endidx - len(text) - completer = AutoCompleter(ac_app.completer_parser, ac_app) + completer = ArgparseCompleter(ac_app.completer_parser, ac_app) tokens = ['completer', blank, text] completions = completer.complete_command(tokens, text, line, begidx, endidx) assert completions == completions_from_method @@ -699,7 +700,7 @@ def test_completion_items_default_header(ac_app): ('hint', '', True), ('hint --flag', '', True), ('hint --suppressed_help', '', False), - ('hint --suppressed_hint', '--', False), + ('hint --suppressed_hint', '', False), # Hint because flag does not have enough values to be considered finished ('nargs --one_or_more', '-', True), @@ -730,7 +731,10 @@ def test_autocomp_hint(ac_app, command_and_args, text, has_hint, capsys): complete_tester(text, line, begidx, endidx, ac_app) out, err = capsys.readouterr() - assert has_hint == ("Hint:\n" in out) + if has_hint: + assert "Hint:\n" in out + else: + assert not out def test_autocomp_hint_no_help_text(ac_app, capsys): @@ -867,20 +871,20 @@ def test_looks_like_flag(): def test_complete_command_no_tokens(ac_app): - from cmd2.argparse_completer import AutoCompleter + from cmd2.argparse_completer import ArgparseCompleter parser = Cmd2ArgumentParser() - ac = AutoCompleter(parser, ac_app) + ac = ArgparseCompleter(parser, ac_app) completions = ac.complete_command(tokens=[], text='', line='', begidx=0, endidx=0) assert not completions def test_complete_command_help_no_tokens(ac_app): - from cmd2.argparse_completer import AutoCompleter + from cmd2.argparse_completer import ArgparseCompleter parser = Cmd2ArgumentParser() - ac = AutoCompleter(parser, ac_app) + ac = ArgparseCompleter(parser, ac_app) completions = ac.complete_subcommand_help(tokens=[], text='', line='', begidx=0, endidx=0) assert not completions |