summaryrefslogtreecommitdiff
path: root/tests/test_argparse_completer.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_argparse_completer.py')
-rw-r--r--tests/test_argparse_completer.py38
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