fault-log-analyzer/tests/test_config.py

43 lines
1.5 KiB
Python

import _bootstrap # noqa: F401
import unittest
from unittest.mock import patch
from fault_log_analyzer.config import Config
class TestConfig(unittest.TestCase):
def test_defaults(self):
with patch.dict("os.environ", {}, clear=True):
cfg = Config.from_env()
self.assertEqual(cfg.kafka_logs_raw_topic, "logs.raw")
self.assertEqual(cfg.kafka_logs_fault_topic, "logs.fault")
self.assertEqual(cfg.cluster_eps, 0.75)
self.assertEqual(cfg.cluster_min_samples, 5)
self.assertEqual(cfg.storage, "memory")
self.assertEqual(cfg.api_port, 8080)
def test_env_overrides(self):
env = {
"KAFKA_LOGS_RAW_TOPIC": "my.logs",
"CLUSTER_EPS": "0.5",
"CLUSTER_MIN_SAMPLES": "3",
"API_PORT": "9090",
"STORAGE": "mysql",
"ES_HOSTS": "http://es1:9200, http://es2:9200",
"CLUSTER_USE_SKLEARN": "true",
}
with patch.dict("os.environ", env, clear=True):
cfg = Config.from_env()
self.assertEqual(cfg.kafka_logs_raw_topic, "my.logs")
self.assertEqual(cfg.cluster_eps, 0.5)
self.assertEqual(cfg.cluster_min_samples, 3)
self.assertEqual(cfg.api_port, 9090)
self.assertEqual(cfg.storage, "mysql")
self.assertEqual(cfg.es_hosts, ["http://es1:9200", "http://es2:9200"])
self.assertTrue(cfg.cluster_use_sklearn)
if __name__ == "__main__":
unittest.main()