import time from jarvis.__main__ import Jarvis, INTENDED_QUERY_MIN_ATTENTION from jarvis.presence import Signals def _jarvis_instance(): args = type("Args", (), {"sim": True, "no_vision": True, "no_tts": True, "debug": False}) jarvis = Jarvis(args) jarvis.presence.signals = Signals() return jarvis def test_requires_confirmation_low_attention(): jarvis = _jarvis_instance() now = time.monotonic() assert jarvis._attention_confidence(now) == 0.0 assert jarvis._requires_confirmation(now) def test_requires_confirmation_with_face(): jarvis = _jarvis_instance() now = time.monotonic() jarvis.presence.signals.face_last_seen = now assert jarvis._attention_confidence(now) >= INTENDED_QUERY_MIN_ATTENTION assert not jarvis._requires_confirmation(now) def test_requires_confirmation_with_doa_speech(): jarvis = _jarvis_instance() now = time.monotonic() jarvis._last_doa_speech = True assert not jarvis._requires_confirmation(now)