43 lines
1.5 KiB
Python
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()
|