Files
navidrome-litefs/scripts/cluster_status/tests/test_formatter.py

79 lines
2.4 KiB
Python

import pytest
import output_formatter
def test_format_cluster_summary():
"""Test the summary string generation."""
cluster_data = {
"health": "Healthy",
"primary_count": 1,
"nodes": [],
"nomad_available": False
}
summary = output_formatter.format_summary(cluster_data)
assert "Healthy" in summary
assert "Primaries" in summary
assert "WARNING: Nomad CLI unavailable" in summary
def test_format_node_table():
"""Test the table generation."""
nodes = [
{
"node": "node1",
"role": "primary",
"status": "passing",
"uptime": 100,
"replication_lag": "N/A",
"litefs_primary": True
}
]
table = output_formatter.format_node_table(nodes, use_color=False)
assert "node1" in table
assert "primary" in table
assert "passing" in table
def test_format_diagnostics():
"""Test the diagnostics section generation."""
nodes = [
{
"node": "node3",
"status": "critical",
"check_output": "500 Internal Error",
"litefs_error": "Connection Timeout"
}
]
diagnostics = output_formatter.format_diagnostics(nodes, use_color=False)
assert "DIAGNOSTICS" in diagnostics
assert "node3" in diagnostics
assert "500 Internal Error" in diagnostics
assert "Connection Timeout" in diagnostics
def test_format_diagnostics_empty():
"""Test that diagnostics section is empty when no errors exist."""
nodes = [
{
"node": "node1",
"status": "passing",
"litefs_error": None
},
{
"node": "node2",
"status": "standby", # Should also be empty
"litefs_error": None
}
]
diagnostics = output_formatter.format_diagnostics(nodes, use_color=False)
assert diagnostics == ""
def test_format_node_table_status_colors():
"""Test that different statuses are handled."""
nodes = [
{"node": "n1", "role": "primary", "status": "passing", "litefs_primary": True},
{"node": "n2", "role": "replica", "status": "standby", "litefs_primary": False},
{"node": "n3", "role": "primary", "status": "unregistered", "litefs_primary": True},
]
table = output_formatter.format_node_table(nodes, use_color=False)
assert "passing" in table
assert "standby" in table
assert "unregistered" in table