Skip to content

Commit 8049aef

Browse files
committed
Added test coverage.
1 parent d336c38 commit 8049aef

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

cmd2/argparse_custom.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,11 +371,11 @@ def register_argparse_argument_parameter(
371371
It accepts the Action instance and the value as arguments.
372372
"""
373373
if not param_name.isidentifier():
374-
raise KeyError(f'Invalid parameter name {param_name} - cannot be used as a python identifier')
374+
raise KeyError(f"Invalid parameter name '{param_name}' - cannot be used as a python identifier")
375375

376376
attr_name = constants.cmd2_attr_name(param_name)
377377
if param_name in CUSTOM_ACTION_ATTRIBS or hasattr(argparse.Action, attr_name):
378-
raise KeyError(f'Custom parameter {param_name} already exists')
378+
raise KeyError(f"Custom parameter '{param_name}' already exists")
379379

380380
def _action_get_custom_parameter(self: argparse.Action) -> Any:
381381
"""Get the custom attribute of an argparse Action."""

tests/test_argparse_custom.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
from cmd2 import (
1010
Choices,
1111
Cmd2ArgumentParser,
12+
argparse_custom,
1213
constants,
1314
)
1415
from cmd2.argparse_custom import (
1516
Cmd2HelpFormatter,
1617
Cmd2RichArgparseConsole,
1718
generate_range_error,
19+
register_argparse_argument_parameter,
1820
)
1921

2022
from .conftest import run_cmd
@@ -296,6 +298,19 @@ def test_cmd2_attribute_wrapper() -> None:
296298
assert wrapper.get() == new_val
297299

298300

301+
def test_register_argparse_argument_parameter() -> None:
302+
register_argparse_argument_parameter("test")
303+
assert "test" in argparse_custom.CUSTOM_ACTION_ATTRIBS
304+
305+
expected_err = "already exists"
306+
with pytest.raises(KeyError, match=expected_err):
307+
register_argparse_argument_parameter("test")
308+
309+
expected_err = "Invalid parameter name"
310+
with pytest.raises(KeyError, match=expected_err):
311+
register_argparse_argument_parameter("invalid name")
312+
313+
299314
def test_parser_attachment() -> None:
300315
# Attach a parser as a subcommand
301316
root_parser = Cmd2ArgumentParser(description="root command")

0 commit comments

Comments
 (0)