import pytest from hermes_face.arbiter import resolve_state @pytest.mark.parametrize('agent,audio,expected', [ ('sleeping', 'quiet', 'sleeping'), ('sleeping', 'listening', 'sleeping'), # room sound never wakes the face ('sleeping', 'speaking', 'sleeping'), ('idle', 'quiet', 'idle'), ('idle', 'listening', 'listening'), ('idle', 'speaking', 'speaking'), ('thinking', 'quiet', 'thinking'), ('thinking', 'listening', 'listening'), # a voice interrupts the thinking face ('listening', 'quiet', 'listening'), ('speaking', 'quiet', 'speaking'), # the agent says it is speaking before the audio shows it ('thinking', 'speaking', 'speaking'), ]) def test_priority(agent, audio, expected): assert resolve_state(agent, audio) == expected