# -*- coding: utf-8 -*- """Tests de `monitor_estado.aviso` — voz solo si requiere atencion (RF-14, RF-15).""" import monitor_estado.aviso as aviso def test_aviso_dispara_con_atencion(): llamadas = [] r = {"fallo_ia": False, "requiere_atencion": [{"fuente": "jira", "texto": "caido"}]} assert aviso.avisar(r, cfg={"aviso": {"voz": True}}, _runner=lambda t: llamadas.append(t)) is True assert llamadas == ["fin"] def test_ciclo_sin_novedad_no_avisa(): llamadas = [] r = {"fallo_ia": False, "requiere_atencion": [], "resumen_md": "Sin novedades."} assert aviso.avisar(r, cfg={"aviso": {"voz": True}}, _runner=lambda t: llamadas.append(t)) is False assert llamadas == [] def test_aviso_dispara_con_fallo_ia(): llamadas = [] r = {"fallo_ia": True, "requiere_atencion": []} assert aviso.avisar(r, cfg={"aviso": {"voz": True}}, _runner=lambda t: llamadas.append(t)) is True assert llamadas == ["error"] def test_aviso_desactivado_por_config(): llamadas = [] r = {"fallo_ia": False, "requiere_atencion": [{"texto": "x"}]} assert aviso.avisar(r, cfg={"aviso": {"voz": False}}, _runner=lambda t: llamadas.append(t)) is False assert llamadas == []