Reformat with black
This commit is contained in:
@@ -16,31 +16,31 @@ class TestCLIIntegration:
|
||||
"""Test monitor parser setup"""
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
|
||||
|
||||
monitor_parser = setup_monitor_parser(subparsers)
|
||||
|
||||
|
||||
# Verify parser is created
|
||||
assert monitor_parser is not None
|
||||
assert hasattr(setup_monitor_parser, '_parser')
|
||||
assert hasattr(setup_monitor_parser, "_parser")
|
||||
|
||||
def test_maintenance_parser_setup(self):
|
||||
"""Test maintenance parser setup"""
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
|
||||
|
||||
maintenance_parser = setup_maintenance_parser(subparsers)
|
||||
|
||||
|
||||
# Verify parser is created
|
||||
assert maintenance_parser is not None
|
||||
assert hasattr(setup_maintenance_parser, '_parser')
|
||||
assert hasattr(setup_maintenance_parser, "_parser")
|
||||
|
||||
def test_info_parser_setup(self):
|
||||
"""Test info parser setup"""
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
|
||||
|
||||
info_parser = setup_info_parser(subparsers)
|
||||
|
||||
|
||||
# Verify parser is created
|
||||
assert info_parser is not None
|
||||
|
||||
@@ -49,14 +49,14 @@ class TestCLIIntegration:
|
||||
# Setup
|
||||
mock_args = Mock()
|
||||
mock_args.monitor_action = None
|
||||
|
||||
|
||||
# Setup parser reference
|
||||
mock_parser = Mock()
|
||||
setup_monitor_parser._parser = mock_parser
|
||||
|
||||
|
||||
# Execute
|
||||
result = handle_monitor_command(mock_args, mock_client)
|
||||
|
||||
|
||||
# Verify
|
||||
assert result is False
|
||||
mock_parser.print_help.assert_called_once()
|
||||
@@ -66,14 +66,14 @@ class TestCLIIntegration:
|
||||
# Setup
|
||||
mock_args = Mock()
|
||||
mock_args.maintenance_action = None
|
||||
|
||||
|
||||
# Setup parser reference
|
||||
mock_parser = Mock()
|
||||
setup_maintenance_parser._parser = mock_parser
|
||||
|
||||
|
||||
# Execute
|
||||
result = handle_maintenance_command(mock_args, mock_client)
|
||||
|
||||
|
||||
# Verify
|
||||
assert result is False
|
||||
mock_parser.print_help.assert_called_once()
|
||||
@@ -85,7 +85,7 @@ class TestCLIIntegration:
|
||||
mock_args.monitor_action = "pause"
|
||||
mock_args.monitor = ["test*"]
|
||||
mock_args.group = ["web-services"]
|
||||
|
||||
|
||||
# Mock client methods
|
||||
mock_client.find_monitors_by_pattern.return_value = [
|
||||
{"id": 1, "name": "test-monitor"}
|
||||
@@ -94,10 +94,10 @@ class TestCLIIntegration:
|
||||
{"id": 2, "name": "web-service-monitor"}
|
||||
]
|
||||
mock_client.api.pause_monitor.return_value = {"msg": "Paused Successfully."}
|
||||
|
||||
|
||||
# Execute
|
||||
result = handle_monitor_command(mock_args, mock_client)
|
||||
|
||||
|
||||
# Verify
|
||||
assert result is True
|
||||
mock_client.find_monitors_by_pattern.assert_called_once_with(["test*"])
|
||||
@@ -113,13 +113,13 @@ class TestCLIIntegration:
|
||||
mock_args.monitor = None
|
||||
mock_args.group = None
|
||||
mock_args.all = True
|
||||
|
||||
|
||||
mock_client.api.get_monitors.return_value = mock_monitors
|
||||
mock_client.api.resume_monitor.return_value = {"msg": "Resumed Successfully."}
|
||||
|
||||
|
||||
# Execute
|
||||
result = handle_monitor_command(mock_args, mock_client)
|
||||
|
||||
|
||||
# Verify
|
||||
assert result is True
|
||||
mock_client.api.get_monitors.assert_called_once()
|
||||
@@ -135,9 +135,11 @@ class TestArgumentParsing:
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
setup_monitor_parser(subparsers)
|
||||
|
||||
|
||||
# Test with monitor patterns
|
||||
args = parser.parse_args(["monitor", "list", "--monitor", "web*", "--monitor", "api*"])
|
||||
args = parser.parse_args(
|
||||
["monitor", "list", "--monitor", "web*", "--monitor", "api*"]
|
||||
)
|
||||
assert args.resource == "monitor"
|
||||
assert args.monitor_action == "list"
|
||||
assert args.monitor == ["web*", "api*"]
|
||||
@@ -147,7 +149,7 @@ class TestArgumentParsing:
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
setup_monitor_parser(subparsers)
|
||||
|
||||
|
||||
# Test with group patterns
|
||||
args = parser.parse_args(["monitor", "pause", "--group", "production"])
|
||||
assert args.resource == "monitor"
|
||||
@@ -159,7 +161,7 @@ class TestArgumentParsing:
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
setup_monitor_parser(subparsers)
|
||||
|
||||
|
||||
# Test with --all flag
|
||||
args = parser.parse_args(["monitor", "resume", "--all"])
|
||||
assert args.resource == "monitor"
|
||||
@@ -171,15 +173,22 @@ class TestArgumentParsing:
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
setup_maintenance_parser(subparsers)
|
||||
|
||||
|
||||
# Test maintenance add
|
||||
args = parser.parse_args([
|
||||
"maintenance", "add",
|
||||
"--title", "Server Update",
|
||||
"--description", "Updating server software",
|
||||
"--duration", "2h",
|
||||
"--monitor", "server*"
|
||||
])
|
||||
args = parser.parse_args(
|
||||
[
|
||||
"maintenance",
|
||||
"add",
|
||||
"--title",
|
||||
"Server Update",
|
||||
"--description",
|
||||
"Updating server software",
|
||||
"--duration",
|
||||
"2h",
|
||||
"--monitor",
|
||||
"server*",
|
||||
]
|
||||
)
|
||||
assert args.resource == "maintenance"
|
||||
assert args.maintenance_action == "add"
|
||||
assert args.title == "Server Update"
|
||||
@@ -192,7 +201,7 @@ class TestArgumentParsing:
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
setup_maintenance_parser(subparsers)
|
||||
|
||||
|
||||
# Test delete by ID
|
||||
args = parser.parse_args(["maintenance", "delete", "--id", "123"])
|
||||
assert args.resource == "maintenance"
|
||||
@@ -210,7 +219,7 @@ class TestArgumentParsing:
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="resource")
|
||||
setup_info_parser(subparsers)
|
||||
|
||||
|
||||
# Test info command
|
||||
args = parser.parse_args(["info"])
|
||||
assert args.resource == "info"
|
||||
@@ -224,31 +233,34 @@ class TestErrorHandling:
|
||||
mock_args.monitor_action = "pause"
|
||||
mock_args.monitor = ["nonexistent*"]
|
||||
mock_args.group = None
|
||||
|
||||
|
||||
# Mock no matches found
|
||||
mock_client.find_monitors_by_pattern.return_value = []
|
||||
|
||||
|
||||
# Execute
|
||||
result = handle_monitor_command(mock_args, mock_client)
|
||||
|
||||
|
||||
# Verify error handling
|
||||
assert result is True # Command completes even with no matches
|
||||
captured = capsys.readouterr()
|
||||
assert "Error: No monitors found matching the specified patterns or groups" in captured.out
|
||||
assert (
|
||||
"Error: No monitors found matching the specified patterns or groups"
|
||||
in captured.out
|
||||
)
|
||||
|
||||
def test_maintenance_command_resilience(self, mock_client, capsys):
|
||||
"""Test maintenance command handles API errors"""
|
||||
# Setup
|
||||
mock_args = Mock()
|
||||
mock_args.maintenance_action = "list"
|
||||
|
||||
|
||||
# Mock API error
|
||||
mock_client.api.get_maintenances.side_effect = Exception("Connection timeout")
|
||||
|
||||
|
||||
# Execute
|
||||
result = handle_maintenance_command(mock_args, mock_client)
|
||||
|
||||
|
||||
# Verify error handling
|
||||
assert result is True # Command completes even with error
|
||||
captured = capsys.readouterr()
|
||||
assert "Error listing maintenances: Connection timeout" in captured.out
|
||||
assert "Error listing maintenances: Connection timeout" in captured.out
|
||||
|
Reference in New Issue
Block a user