Skip to content

Commit e8e221f

Browse files
committed
Try to fix unit tests for Python 3.14
1 parent 6eddbdd commit e8e221f

File tree

1 file changed

+40
-14
lines changed

1 file changed

+40
-14
lines changed

cmd2/argparse_custom.py

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,6 +1252,9 @@ def __init__(
12521252
conflict_handler: str = 'error',
12531253
add_help: bool = True,
12541254
allow_abbrev: bool = True,
1255+
exit_on_error: bool = True,
1256+
suggest_on_error: bool = False,
1257+
color: bool = False,
12551258
*,
12561259
ap_completer_type: Optional[Type['ArgparseCompleter']] = None,
12571260
) -> None:
@@ -1262,20 +1265,43 @@ def __init__(
12621265
behavior on this parser. If this is None or not present, then cmd2 will use
12631266
argparse_completer.DEFAULT_AP_COMPLETER when tab completing this parser's arguments
12641267
"""
1265-
super(Cmd2ArgumentParser, self).__init__(
1266-
prog=prog,
1267-
usage=usage,
1268-
description=description,
1269-
epilog=epilog,
1270-
parents=parents if parents else [],
1271-
formatter_class=formatter_class, # type: ignore[arg-type]
1272-
prefix_chars=prefix_chars,
1273-
fromfile_prefix_chars=fromfile_prefix_chars,
1274-
argument_default=argument_default,
1275-
conflict_handler=conflict_handler,
1276-
add_help=add_help,
1277-
allow_abbrev=allow_abbrev,
1278-
)
1268+
# TODO: CHANGE so if Python >= 3.14 new args are passed
1269+
if sys.version_info[1] >= 14:
1270+
# Python >= 3.14 so pass new arguments to parent argparse.ArgumentParser class
1271+
super(Cmd2ArgumentParser, self).__init__(
1272+
prog=prog,
1273+
usage=usage,
1274+
description=description,
1275+
epilog=epilog,
1276+
parents=parents if parents else [],
1277+
formatter_class=formatter_class, # type: ignore[arg-type]
1278+
prefix_chars=prefix_chars,
1279+
fromfile_prefix_chars=fromfile_prefix_chars,
1280+
argument_default=argument_default,
1281+
conflict_handler=conflict_handler,
1282+
add_help=add_help,
1283+
allow_abbrev=allow_abbrev,
1284+
exit_on_error=exit_on_error,
1285+
suggest_on_error=suggest_on_error,
1286+
color=color,
1287+
)
1288+
else:
1289+
# Python < 3.14, so don't pass new arguments to parent argparse.ArgumentParser class
1290+
super(Cmd2ArgumentParser, self).__init__(
1291+
prog=prog,
1292+
usage=usage,
1293+
description=description,
1294+
epilog=epilog,
1295+
parents=parents if parents else [],
1296+
formatter_class=formatter_class, # type: ignore[arg-type]
1297+
prefix_chars=prefix_chars,
1298+
fromfile_prefix_chars=fromfile_prefix_chars,
1299+
argument_default=argument_default,
1300+
conflict_handler=conflict_handler,
1301+
add_help=add_help,
1302+
allow_abbrev=allow_abbrev,
1303+
exit_on_error=exit_on_error,
1304+
)
12791305

12801306
self.set_ap_completer_type(ap_completer_type) # type: ignore[attr-defined]
12811307

0 commit comments

Comments
 (0)