"""Tests for config loading and validation.""" from vigilar.config import CameraConfig, VigilarConfig def test_default_config(): cfg = VigilarConfig() assert cfg.system.name == "Vigilar Home Security" assert cfg.web.port == 49735 assert cfg.mqtt.port == 1883 assert cfg.cameras == [] def test_camera_config_defaults(): cam = CameraConfig(id="test", display_name="Test", rtsp_url="rtsp://localhost") assert cam.idle_fps == 2 assert cam.motion_fps == 30 assert cam.pre_motion_buffer_s == 5 assert cam.post_motion_buffer_s == 30 assert cam.motion_sensitivity == 0.7 def test_duplicate_camera_ids_rejected(): import pytest with pytest.raises(ValueError, match="Duplicate camera IDs"): VigilarConfig(cameras=[ CameraConfig(id="cam1", display_name="A", rtsp_url="rtsp://a"), CameraConfig(id="cam1", display_name="B", rtsp_url="rtsp://b"), ]) def test_camera_sensitivity_bounds(): import pytest with pytest.raises(Exception): CameraConfig(id="test", display_name="Test", rtsp_url="rtsp://localhost", motion_sensitivity=1.5)