Improvements to Dectalk driver.

This commit is contained in:
Storm Dragon
2026-07-26 19:44:10 -04:00
parent 6d9260e79b
commit 45bd33f756
4 changed files with 27 additions and 10 deletions
+16 -5
View File
@@ -1,5 +1,6 @@
import os
import select
import termios
import time
from unittest.mock import ANY
from unittest.mock import Mock
@@ -64,7 +65,7 @@ def test_dectalk_driver_speaks_printable_text(serial_pair):
speech_driver, master_fd = initialized_driver(dectalkDriver, serial_pair)
try:
speech_driver.speak("Hello\nworld ☃")
assert read_available(master_fd, 13) == b"Hello world \x01"
assert read_available(master_fd, 13) == b"Hello world \x0b"
finally:
speech_driver.shutdown()
@@ -73,12 +74,22 @@ def test_dectalk_driver_writes_settings_and_cancel(serial_pair):
speech_driver, master_fd = initialized_driver(dectalkDriver, serial_pair)
try:
speech_driver.set_rate(1.0)
speech_driver.set_pitch(0.0)
speech_driver.set_pitch(1.0)
speech_driver.set_volume(0.5)
speech_driver.cancel()
assert read_available(master_fd, 33) == (
b"[:ra 650][:dv ap 50][:vo 50]\x18"
)
expected = b"[:ra 650][:dv ap 350][:vo 50]\x03"
assert read_available(master_fd, len(expected)) == expected
finally:
speech_driver.shutdown()
def test_dectalk_driver_enables_xon_xoff_flow_control(serial_pair):
speech_driver, _ = initialized_driver(dectalkDriver, serial_pair)
try:
input_flags = termios.tcgetattr(speech_driver.serial_port)[0]
assert input_flags & termios.IXON
assert not input_flags & termios.IXOFF
assert not input_flags & termios.IXANY
finally:
speech_driver.shutdown()