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"