| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- """Tests for the assistant mode state machine."""
- from stt_daemon.assistant.modes import Mode, ModeMachine
- def test_initial_mode_is_idle():
- assert ModeMachine().mode is Mode.IDLE
- def test_arm_execute_finish_cycle():
- machine = ModeMachine()
- assert machine.arm() is True
- assert machine.mode is Mode.COMMAND_ARMED
- assert machine.execute() is True
- assert machine.mode is Mode.EXECUTING
- assert machine.finish() is True
- assert machine.mode is Mode.IDLE
- def test_cancel_from_armed_returns_to_idle():
- machine = ModeMachine()
- machine.arm()
- assert machine.cancel() is True
- assert machine.mode is Mode.IDLE
- def test_chat_enter_exit_cycle():
- machine = ModeMachine()
- assert machine.enter_chat() is True
- assert machine.mode is Mode.CHAT
- assert machine.exit_chat() is True
- assert machine.mode is Mode.IDLE
- def test_cannot_enter_chat_while_command_active():
- machine = ModeMachine()
- machine.arm()
- assert machine.enter_chat() is False
- assert machine.mode is Mode.COMMAND_ARMED
- machine.execute()
- assert machine.enter_chat() is False
- assert machine.mode is Mode.EXECUTING
- def test_cannot_arm_while_in_chat():
- machine = ModeMachine()
- machine.enter_chat()
- assert machine.arm() is False
- assert machine.mode is Mode.CHAT
- def test_refusals_leave_mode_unchanged():
- machine = ModeMachine()
- assert machine.execute() is False
- assert machine.cancel() is False
- assert machine.finish() is False
- assert machine.exit_chat() is False
- assert machine.mode is Mode.IDLE
- def test_command_active_property():
- machine = ModeMachine()
- assert machine.command_active is False
- machine.arm()
- assert machine.command_active is True
- machine.execute()
- assert machine.command_active is True
- machine.finish()
- assert machine.command_active is False
- machine.enter_chat()
- assert machine.command_active is False
|