speculative fixes for hardware speech.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
import select
|
||||
import time
|
||||
from unittest.mock import ANY
|
||||
from unittest.mock import Mock
|
||||
|
||||
import pytest
|
||||
@@ -103,6 +104,48 @@ def test_litetalk_driver_writes_settings_and_cancel(serial_pair):
|
||||
speech_driver.shutdown()
|
||||
|
||||
|
||||
def test_auto_device_detection_includes_classic_serial(
|
||||
monkeypatch, serial_pair
|
||||
):
|
||||
master_fd, slave_name = serial_pair
|
||||
|
||||
def fake_glob(pattern):
|
||||
if pattern == "/dev/ttyS*":
|
||||
return [slave_name]
|
||||
return []
|
||||
|
||||
monkeypatch.setattr(
|
||||
"fenrirscreenreader.speechDriver.hardwareSerialDriver.glob.glob",
|
||||
fake_glob,
|
||||
)
|
||||
speech_driver = litetalkDriver.driver()
|
||||
speech_driver.initialize(build_environment("auto"))
|
||||
try:
|
||||
assert speech_driver.device == slave_name
|
||||
speech_driver.speak("Serial")
|
||||
assert read_available(master_fd, 7) == b"Serial\r"
|
||||
finally:
|
||||
speech_driver.shutdown()
|
||||
|
||||
|
||||
def test_auto_device_detection_fails_when_no_serial_device(monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
"fenrirscreenreader.speechDriver.hardwareSerialDriver.glob.glob",
|
||||
lambda pattern: [],
|
||||
)
|
||||
speech_driver = litetalkDriver.driver()
|
||||
|
||||
with pytest.raises(RuntimeError, match="hardware speech device"):
|
||||
speech_driver.initialize(build_environment("auto"))
|
||||
|
||||
debug_manager = speech_driver.env["runtime"]["DebugManager"]
|
||||
debug_manager.write_debug_out.assert_called_with(
|
||||
"Hardware speech device not found",
|
||||
ANY,
|
||||
on_any_level=True,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("driver_class", [doubletalkDriver, tripletalkDriver])
|
||||
def test_litetalk_compatible_alias_drivers(driver_class, serial_pair):
|
||||
speech_driver, master_fd = initialized_driver(driver_class, serial_pair)
|
||||
|
||||
Reference in New Issue
Block a user