Skip to content

Commit e7a11bd

Browse files
committed
Added tests for token_resembles_flag
1 parent b97763a commit e7a11bd

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

cmd2/argparse_completer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def register_custom_actions(parser: argparse.ArgumentParser) -> None:
209209
parser.register('action', 'append', _AppendRangeAction)
210210

211211

212-
def token_resembles_flag(token: str, parser: argparse.ArgumentParser):
212+
def token_resembles_flag(token: str, parser: argparse.ArgumentParser) -> bool:
213213
"""Determine if a token looks like a flag. Based on argparse._parse_optional()."""
214214
# if it's an empty string, it was meant to be a positional
215215
if not token:
@@ -236,6 +236,7 @@ def token_resembles_flag(token: str, parser: argparse.ArgumentParser):
236236
# Looks like a flag
237237
return True
238238

239+
239240
class AutoCompleter(object):
240241
"""Automatically command line tab completion based on argparse parameters"""
241242

tests/test_acargparse.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Released under MIT license, see LICENSE file
66
"""
77
import pytest
8-
from cmd2.argparse_completer import ACArgumentParser
8+
from cmd2.argparse_completer import ACArgumentParser, token_resembles_flag
99

1010

1111
def test_acarg_narg_empty_tuple():
@@ -51,3 +51,18 @@ def test_acarg_narg_tuple_zero_base():
5151
def test_acarg_narg_tuple_zero_to_one():
5252
parser = ACArgumentParser(prog='test')
5353
parser.add_argument('tuple', nargs=(0, 1))
54+
55+
56+
def test_token_resembles_flag():
57+
parser = ACArgumentParser()
58+
59+
# Not valid flags
60+
assert not token_resembles_flag('', parser)
61+
assert not token_resembles_flag('non-flag', parser)
62+
assert not token_resembles_flag('-', parser)
63+
assert not token_resembles_flag('--has space', parser)
64+
assert not token_resembles_flag('-2', parser)
65+
66+
# Valid flags
67+
assert token_resembles_flag('-flag', parser)
68+
assert token_resembles_flag('--flag', parser)

0 commit comments

Comments
 (0)