Restore behavior where 'kumacli monitor' shows the subcommands

This commit is contained in:
Pim van Pelt
2025-08-03 11:50:44 +02:00
parent 64e1ca124f
commit 11aad79720
3 changed files with 14 additions and 8 deletions

View File

@@ -182,6 +182,7 @@ def setup_maintenance_parser(subparsers):
maintenance_parser = subparsers.add_parser( maintenance_parser = subparsers.add_parser(
"maintenance", help="Maintenance operations" "maintenance", help="Maintenance operations"
) )
setup_maintenance_parser.parser = maintenance_parser
maintenance_subparsers = maintenance_parser.add_subparsers( maintenance_subparsers = maintenance_parser.add_subparsers(
dest="maintenance_action", help="Maintenance actions" dest="maintenance_action", help="Maintenance actions"
) )
@@ -239,9 +240,7 @@ def handle_maintenance_command(args, client):
maintenance_commands = MaintenanceCommands(client) maintenance_commands = MaintenanceCommands(client)
if not args.maintenance_action: if not args.maintenance_action:
print( setup_maintenance_parser.parser.print_help()
"Error: No maintenance action specified. Use --help for usage information."
)
return False return False
if args.maintenance_action == "list": if args.maintenance_action == "list":
maintenance_commands.list_maintenances() maintenance_commands.list_maintenances()

View File

@@ -162,6 +162,7 @@ class MonitorCommands:
def setup_monitor_parser(subparsers): def setup_monitor_parser(subparsers):
"""Setup monitor command parser""" """Setup monitor command parser"""
monitor_parser = subparsers.add_parser("monitor", help="Monitor operations") monitor_parser = subparsers.add_parser("monitor", help="Monitor operations")
setup_monitor_parser.parser = monitor_parser
monitor_subparsers = monitor_parser.add_subparsers( monitor_subparsers = monitor_parser.add_subparsers(
dest="monitor_action", help="Monitor actions" dest="monitor_action", help="Monitor actions"
) )
@@ -222,7 +223,7 @@ def handle_monitor_command(args, client):
monitor_commands = MonitorCommands(client) monitor_commands = MonitorCommands(client)
if not args.monitor_action: if not args.monitor_action:
print("Error: No monitor action specified. Use --help for usage information.") setup_monitor_parser.parser.print_help()
return False return False
if args.monitor_action == "list": if args.monitor_action == "list":
monitor_commands.list_monitors( monitor_commands.list_monitors(

View File

@@ -50,13 +50,16 @@ class TestCLIIntegration:
mock_args = Mock() mock_args = Mock()
mock_args.monitor_action = None mock_args.monitor_action = None
# Setup parser reference to simulate having called setup_monitor_parser
mock_parser = Mock()
setup_monitor_parser.parser = mock_parser
# Execute # Execute
result = handle_monitor_command(mock_args, mock_client) result = handle_monitor_command(mock_args, mock_client)
# Verify # Verify
assert result is False assert result is False
captured = capsys.readouterr() mock_parser.print_help.assert_called_once()
assert "Error: No monitor action specified" in captured.out
def test_maintenance_help_message(self, mock_client, capsys): def test_maintenance_help_message(self, mock_client, capsys):
"""Test maintenance command shows help when no action specified""" """Test maintenance command shows help when no action specified"""
@@ -64,13 +67,16 @@ class TestCLIIntegration:
mock_args = Mock() mock_args = Mock()
mock_args.maintenance_action = None mock_args.maintenance_action = None
# Setup parser reference to simulate having called setup_maintenance_parser
mock_parser = Mock()
setup_maintenance_parser.parser = mock_parser
# Execute # Execute
result = handle_maintenance_command(mock_args, mock_client) result = handle_maintenance_command(mock_args, mock_client)
# Verify # Verify
assert result is False assert result is False
captured = capsys.readouterr() mock_parser.print_help.assert_called_once()
assert "Error: No maintenance action specified" in captured.out
def test_monitor_command_with_full_args(self, mock_client): def test_monitor_command_with_full_args(self, mock_client):
"""Test monitor command with complete argument structure""" """Test monitor command with complete argument structure"""