mirror of
https://gitlab.com/iscmt/homehub4000-prometheus-exporter.git
synced 2026-04-04 17:22:24 -04:00
Prometheus exporter for HomeHub 4000 router
This commit is contained in:
63
tests/test_database.py
Normal file
63
tests/test_database.py
Normal file
@@ -0,0 +1,63 @@
|
||||
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"
|
||||
Reference in New Issue
Block a user