import tempfile import unittest from pathlib import Path from app_config import load_config class AppConfigTest(unittest.TestCase): def test_load_config_with_defaults(self): with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir) / "config.yaml" path.write_text( """ db: host: 127.0.0.1 port: 5432 database: test_db user: postgres password: secret """.strip(), encoding="utf-8", ) config = load_config(path) self.assertEqual(config.db.host, "127.0.0.1") self.assertEqual(config.db.port, 5432) self.assertEqual(config.modbus.host, "0.0.0.0") self.assertEqual(config.modbus.port, 502) self.assertEqual(config.modbus.interval, 5) self.assertEqual(config.logging.retention_days, 3) def test_load_modbus_interval(self): with tempfile.TemporaryDirectory() as tmp_dir: path = Path(tmp_dir) / "config.yaml" path.write_text( """ db: host: 127.0.0.1 port: 5432 database: test_db user: postgres password: secret modbus: interval: 10 """.strip(), encoding="utf-8", ) config = load_config(path) self.assertEqual(config.modbus.interval, 10) if __name__ == "__main__": unittest.main()