Files
homehub4000-prometheus-expo…/tests/test_database.py
2026-01-05 20:47:00 -05:00

64 lines
2.1 KiB
Python

from datetime import datetime
class TestSaveRouterLogs:
def test_inserts_new_entries(self, temp_db):
logs = [
{
"log_timestamp": "2024-01-15T10:30:00",
"level": "INF",
"module": "WIFI",
"message": "Device connected",
}
]
inserted = temp_db.save_router_logs(logs)
assert inserted == 1
def test_deduplicates_entries(self, temp_db):
logs = [
{
"log_timestamp": "2024-01-15T10:30:00",
"level": "INF",
"module": "WIFI",
"message": "Device connected",
}
]
temp_db.save_router_logs(logs)
inserted = temp_db.save_router_logs(logs)
assert inserted == 0
def test_empty_list_returns_zero(self, temp_db):
assert temp_db.save_router_logs([]) == 0
class TestGetLogCounts:
def test_empty_database(self, temp_db):
counts = temp_db.get_log_counts()
assert counts["total"] == 0
assert counts["by_level"] == {}
assert counts["by_module"] == {}
def test_with_data(self, temp_db):
logs = [
{"log_timestamp": datetime.now().isoformat(), "level": "INF", "module": "WIFI", "message": "msg1"},
{"log_timestamp": datetime.now().isoformat(), "level": "INF", "module": "WIFI", "message": "msg2"},
{"log_timestamp": datetime.now().isoformat(), "level": "ERR", "module": "SYS", "message": "msg3"},
]
temp_db.save_router_logs(logs)
counts = temp_db.get_log_counts()
assert counts["total"] == 3
assert counts["by_level"]["INF"] == 2
assert counts["by_level"]["ERR"] == 1
assert counts["by_module"]["WIFI"] == 2
class TestGetDeviceLogRows:
def test_returns_logs_for_parsing(self, temp_db):
logs = [
{"log_timestamp": "2024-01-15T10:30:00", "level": "INF", "module": "WIFI", "message": "test message"},
]
temp_db.save_router_logs(logs)
rows = temp_db.get_device_log_rows()
assert len(rows) == 1
assert rows[0]["message"] == "test message"