Files
routeros-suricata-tzsp/tests/test_config.py
T
2026-08-17 10:07:19 +02:00

61 lines
2.8 KiB
Python

import os
import unittest
from unittest.mock import patch
from app.config import Config
class ConfigTests(unittest.TestCase):
def test_rule_update_interval_defaults_to_24_hours(self):
with patch.dict(os.environ, {}, clear=True):
self.assertEqual(Config.from_env().rule_update_interval_hours, 24)
def test_rule_update_interval_can_be_changed_or_disabled(self):
with patch.dict(os.environ, {"RULE_UPDATE_INTERVAL_HOURS": "6"}, clear=True):
self.assertEqual(Config.from_env().rule_update_interval_hours, 6)
with patch.dict(os.environ, {"RULE_UPDATE_INTERVAL_HOURS": "0"}, clear=True):
self.assertEqual(Config.from_env().rule_update_interval_hours, 0)
with patch.dict(os.environ, {"RULE_UPDATE_INTERVAL_HOURS": "-5"}, clear=True):
self.assertEqual(Config.from_env().rule_update_interval_hours, 0)
def test_metrics_acl_defaults_to_loopback_ip_only(self):
with patch.dict(os.environ, {}, clear=True):
cfg = Config.from_env()
self.assertEqual(cfg.metrics_allowed_ips, "127.0.0.1/32,::1/128")
self.assertEqual(cfg.metrics_basic_auth_username, "")
self.assertEqual(cfg.metrics_basic_auth_password, "")
def test_metrics_acl_reads_ip_and_basic_auth_from_env(self):
env = {
"METRICS_ALLOWED_IPS": "10.0.0.5/32,10.0.1.0/24",
"METRICS_BASIC_AUTH_USERNAME": "prometheus",
"METRICS_BASIC_AUTH_PASSWORD": "secret",
}
with patch.dict(os.environ, env, clear=True):
cfg = Config.from_env()
self.assertEqual(cfg.metrics_allowed_ips, env["METRICS_ALLOWED_IPS"])
self.assertEqual(cfg.metrics_basic_auth_username, "prometheus")
self.assertEqual(cfg.metrics_basic_auth_password, "secret")
def test_redis_buffer_defaults_are_bounded_and_archive_is_fast(self):
with patch.dict(os.environ, {}, clear=True):
cfg = Config.from_env()
self.assertEqual(cfg.redis_maxmemory_mb, 128)
self.assertEqual(cfg.redis_snapshot_seconds, 0)
self.assertFalse(cfg.redis_aof)
self.assertEqual(cfg.traffic_archive_interval_seconds, 10)
self.assertEqual(cfg.analytics_snapshot_interval_seconds, 120)
self.assertEqual(cfg.traffic_archive_lag_seconds, 10)
self.assertEqual(cfg.traffic_archive_batch_size, 1000)
self.assertEqual(cfg.traffic_max_events, 50000)
def test_traffic_max_events_can_be_overridden_or_disabled(self):
with patch.dict(os.environ, {"TRAFFIC_MAX_EVENTS": "12345"}, clear=True):
self.assertEqual(Config.from_env().traffic_max_events, 12345)
with patch.dict(os.environ, {"TRAFFIC_MAX_EVENTS": "0"}, clear=True):
self.assertEqual(Config.from_env().traffic_max_events, 0)
if __name__ == "__main__":
unittest.main()