From 7f99c1957f29d57c006a11a02226ecab030a1d4c Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Fri, 24 Jul 2026 12:24:07 +0200 Subject: Add D-Bus daemon and Arch user service packaging --- tests/test_state.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/test_state.py (limited to 'tests/test_state.py') diff --git a/tests/test_state.py b/tests/test_state.py new file mode 100644 index 0000000..9fd223c --- /dev/null +++ b/tests/test_state.py @@ -0,0 +1,41 @@ +import unittest + +from parley.state import InvalidStateError, State, StateMachine + + +class StateMachineTests(unittest.TestCase): + def test_record_transcribe_complete(self) -> None: + machine = StateMachine() + self.assertEqual(machine.start_recording(), State.RECORDING) + self.assertEqual(machine.begin_transcription(), State.TRANSCRIBING) + self.assertEqual(machine.complete(), State.IDLE) + + def test_insertion_flow(self) -> None: + machine = StateMachine() + machine.start_recording() + machine.begin_transcription() + self.assertEqual(machine.begin_insertion(), State.INSERTING) + self.assertEqual(machine.complete(), State.IDLE) + + def test_rejects_second_recording(self) -> None: + machine = StateMachine() + machine.start_recording() + with self.assertRaisesRegex(InvalidStateError, "current state is recording"): + machine.start_recording() + + def test_cancel_recording_and_transcription(self) -> None: + machine = StateMachine() + machine.start_recording() + self.assertEqual(machine.cancel(), State.IDLE) + machine.start_recording() + machine.begin_transcription() + self.assertEqual(machine.cancel(), State.IDLE) + + def test_error_is_recoverable(self) -> None: + machine = StateMachine() + machine.fail() + self.assertEqual(machine.start_recording(), State.RECORDING) + + +if __name__ == "__main__": + unittest.main() -- cgit v1.3.1