from edge.config import load_config def test_defaults_when_env_empty(): cfg = load_config({}) assert cfg.device_id == "pi-unknown" assert cfg.fall.prone_confirm_s == 3.0 assert cfg.fall.no_motion_s == 10.0 assert cfg.camera_id == "cam-01" assert cfg.cafe24_url == "" assert cfg.secret == "" assert cfg.ghost.reappear_s == 10.0 assert cfg.zone.debounce_s == 0.75 assert cfg.engine.cooldown_s == 30.0 def test_env_overrides(): env = { "DEVICE_ID": "pi-w1", "CAMERA_ID": "cam-9", "CAFE24_URL": "https://x/api/events", "DEVICE_SECRET": "s", "FALL_PRONE_S": "2.0", "FALL_NO_MOTION_S": "8", "IMMOBILE_S": "90", "COOLDOWN_S": "45", "GHOST_REAPPEAR_S": "7", "ZONE_DEBOUNCE_S": "1.5", } cfg = load_config(env) assert cfg.device_id == "pi-w1" assert cfg.camera_id == "cam-9" assert cfg.fall.prone_confirm_s == 2.0 assert cfg.fall.no_motion_s == 8.0 assert cfg.immobility.immobile_s == 90.0 assert cfg.engine.cooldown_s == 45.0 assert cfg.engine.camera_id == "cam-9" assert cfg.ghost.reappear_s == 7.0 assert cfg.zone.debounce_s == 1.5