"""TC-13: anti-duplicate disk alert (coordinated with ORCH-063 / disk_watchdog). ADR-001 D6: disk_watchdog (ORCH-063) is the SOLE owner of the 85% disk alert via the orchestrator's Telegram. The sidecar carries NO disk alert by default (``WATCHDOG_DISK_CRIT_ENABLED=false``) -> structurally zero double-alert. The sidecar's contribution is an OPT-IN independent ceiling at a HIGHER threshold (a different event, separate channel). """ from watchdog.config import Config from watchdog.signals import host_signals def _cfg(**kw): return Config.from_env(kw) def test_disk_signal_absent_by_default(): # Disk full at 90% -> sidecar produces NO disk signal (disk_watchdog owns it). cfg = _cfg() assert cfg.disk_crit_enabled is False sigs = host_signals(cfg, mem_pct=None, disk=("/repos", 90.0)) assert [s for s in sigs if s.key == "host_disk_crit"] == [] def test_opt_in_ceiling_is_separate_higher_event(): cfg = _cfg(WATCHDOG_DISK_CRIT_ENABLED="true", WATCHDOG_DISK_CRIT_PCT="97") # Below the ceiling (90% < 97%) -> not active even when opted in (no 85% dup). below = host_signals(cfg, mem_pct=None, disk=("/repos", 90.0)) crit_below = [s for s in below if s.key == "host_disk_crit"] assert len(crit_below) == 1 and crit_below[0].active is False # At/over the high ceiling -> active (a DIFFERENT event from disk_watchdog 85%). over = host_signals(cfg, mem_pct=None, disk=("/repos", 98.0)) crit_over = [s for s in over if s.key == "host_disk_crit"] assert len(crit_over) == 1 and crit_over[0].active is True def test_mem_signal_independent_of_disk(): cfg = _cfg(WATCHDOG_MEM_PCT="90") sigs = host_signals(cfg, mem_pct=95.0, disk=None) mem = [s for s in sigs if s.key == "host_mem"] assert len(mem) == 1 and mem[0].active is True