windows installer fixes
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
"""
|
||||
Unit tests for LOGAR log_collector and client_transport modules.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import unittest
|
||||
import warnings
|
||||
from datetime import datetime, timezone, timedelta
|
||||
|
||||
warnings.filterwarnings("ignore")
|
||||
warnings.simplefilter("ignore")
|
||||
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src")))
|
||||
|
||||
from log_collector import (
|
||||
get_machine_identifier,
|
||||
is_path_writable,
|
||||
get_default_data_dir,
|
||||
resolve_writable_path,
|
||||
get_state_path,
|
||||
load_state,
|
||||
save_state,
|
||||
commit_state,
|
||||
BaseLogCollector,
|
||||
WindowsLogCollector,
|
||||
LinuxLogCollector,
|
||||
get_log_collector
|
||||
)
|
||||
from client_transport import (
|
||||
is_cert_expiring_soon,
|
||||
load_config
|
||||
)
|
||||
|
||||
|
||||
class TestLogCollectorModule(unittest.TestCase):
|
||||
def test_machine_identifier(self):
|
||||
mid = get_machine_identifier()
|
||||
self.assertIsInstance(mid, str)
|
||||
self.assertTrue(len(mid) > 0)
|
||||
self.assertNotEqual(mid, "localhost")
|
||||
|
||||
def test_path_writable_and_data_dir(self):
|
||||
data_dir = get_default_data_dir("LOGAR_TEST")
|
||||
self.assertIsInstance(data_dir, str)
|
||||
self.assertTrue(is_path_writable(data_dir))
|
||||
|
||||
def test_state_lifecycle_windows_and_linux(self):
|
||||
state_file = "test_shared_state.json"
|
||||
try:
|
||||
state = load_state(state_file)
|
||||
self.assertEqual(state, {})
|
||||
|
||||
# Windows staged state
|
||||
state["new_last_record_number"] = 100
|
||||
state["new_sent_record_ids"] = ["100:2026-09-27T00:00:00"]
|
||||
commit_state(state, state_file)
|
||||
self.assertNotIn("new_last_record_number", state)
|
||||
self.assertEqual(state["last_record_number"], 100)
|
||||
|
||||
# Linux staged state
|
||||
state["new_last_cursor"] = "c_xyz"
|
||||
state["new_last_timestamp_us"] = 123456789.0
|
||||
state["new_sent_cursors"] = ["c_xyz"]
|
||||
commit_state(state, state_file)
|
||||
self.assertNotIn("new_last_cursor", state)
|
||||
self.assertEqual(state["last_cursor"], "c_xyz")
|
||||
self.assertEqual(state["last_timestamp_us"], 123456789.0)
|
||||
|
||||
# Reload and verify
|
||||
reloaded = load_state(state_file)
|
||||
self.assertEqual(reloaded["last_record_number"], 100)
|
||||
self.assertEqual(reloaded["last_cursor"], "c_xyz")
|
||||
finally:
|
||||
if os.path.exists(state_file):
|
||||
try:
|
||||
os.remove(state_file)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def test_windows_log_collector_severity_mapping(self):
|
||||
state = {}
|
||||
collector = WindowsLogCollector(state=state, machine_id="test-win-node", channels=["Application"])
|
||||
self.assertEqual(collector.machine_id, "test-win-node")
|
||||
self.assertEqual(collector.channels, ["Application"])
|
||||
|
||||
def test_linux_log_collector_priority_normalization(self):
|
||||
state = {}
|
||||
collector = LinuxLogCollector(state=state, machine_id="test-linux-node")
|
||||
self.assertEqual(collector.machine_id, "test-linux-node")
|
||||
|
||||
def test_get_log_collector_factory(self):
|
||||
win_col = get_log_collector(os_type="windows", machine_id="win-1")
|
||||
self.assertIsInstance(win_col, WindowsLogCollector)
|
||||
self.assertEqual(win_col.machine_id, "win-1")
|
||||
|
||||
lin_col = get_log_collector(os_type="linux", machine_id="lin-1")
|
||||
self.assertIsInstance(lin_col, LinuxLogCollector)
|
||||
self.assertEqual(lin_col.machine_id, "lin-1")
|
||||
|
||||
auto_col = get_log_collector()
|
||||
self.assertIsInstance(auto_col, BaseLogCollector)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user