zonza/tests/test_detection_micro_muet.py
Ralph Mayola ebf3c8e749 Zonza previent quand le micro ne lui envoie rien
Loom tenait le micro : Zonza enregistrait dans le vide. La forme d'onde restait
plate et RIEN ne le signalait — on ne le decouvrait qu'apres avoir parle pour rien,
puis en cherchant pourquoi le halo se figeait.

Au bout de 1,8 s sans le moindre bloc audio, la bulle affiche « Aucun son — micro
pris ailleurs ? » et un son d'erreur previent. Le delai laisse le temps au flux
CoreAudio de s'ouvrir (quelques centaines de ms) sans laisser dicter une phrase
entiere pour rien.

Le garde `en_cours` evite le faux positif de la dictee tres courte : arreter avant
la fin du delai n'est pas une panne.

Verifie dans les deux sens : micro muet -> alerte, 0 bloc ; micro normal -> bulle
inchangee, 40 blocs. Pas de faux positif.

74 tests passent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 12:18:45 +02:00

33 lines
1.1 KiB
Python

"""Detection d'un micro qui n'envoie rien.
Le 2026-08-21, Loom tenait le micro : Zonza enregistrait dans le vide. La forme
d'onde restait plate et rien ne le signalait — on ne le decouvrait qu'apres avoir
parle pour rien. Zonza doit le dire pendant, pas apres.
"""
import pytest
from core import CONFIG, entree_audio_muette
def test_aucun_bloc_apres_le_delai_est_muet():
assert entree_audio_muette(blocs_recus=0, en_cours=True) is True
def test_des_blocs_recus_ne_sont_pas_muets():
assert entree_audio_muette(blocs_recus=1, en_cours=True) is False
def test_on_n_alerte_pas_si_l_enregistrement_est_deja_fini():
# l'utilisateur a arrete avant le delai : ce n'est pas une panne
assert entree_audio_muette(blocs_recus=0, en_cours=False) is False
def test_le_delai_laisse_le_temps_au_flux_de_s_ouvrir():
# ouvrir un flux CoreAudio prend des centaines de ms ; alerter trop tot = faux positif
assert CONFIG["delai_detection_silence_s"] >= 1.0
def test_le_delai_reste_assez_court_pour_servir():
# au-dela, l'utilisateur a deja dicte sa phrase pour rien
assert CONFIG["delai_detection_silence_s"] <= 3.0