74 lines
1.9 KiB
Python
74 lines
1.9 KiB
Python
from configparser import ConfigParser
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from fenrirscreenreader.core.settingsData import settings_data
|
|
from fenrirscreenreader.speechDriver import genericDriver
|
|
|
|
|
|
def test_build_speech_command_replaces_snake_case_placeholders():
|
|
speech_driver = genericDriver.driver()
|
|
speech_driver.speech_command = (
|
|
"synth --volume fenrir_volume --module fenrir_module "
|
|
"--language fenrir_language --voice fenrir_voice "
|
|
"--pitch fenrir_pitch --rate fenrir_rate fenrir_text"
|
|
)
|
|
utterance = {
|
|
"volume": "150",
|
|
"module": "module-name",
|
|
"language": "en-US",
|
|
"voice": "voice-name",
|
|
"pitch": "50",
|
|
"rate": "240",
|
|
"text": "hello",
|
|
}
|
|
|
|
assert speech_driver._build_speech_command(utterance) == [
|
|
"synth",
|
|
"--volume",
|
|
"150",
|
|
"--module",
|
|
"module-name",
|
|
"--language",
|
|
"en-US",
|
|
"--voice",
|
|
"voice-name",
|
|
"--pitch",
|
|
"50",
|
|
"--rate",
|
|
"240",
|
|
"hello",
|
|
]
|
|
|
|
|
|
def _configured_speech_command():
|
|
config = ConfigParser(interpolation=None)
|
|
config.read(Path(__file__).parents[2] / "config/settings/settings.conf")
|
|
return config.get("speech", "generic_speech_command")
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"speech_command",
|
|
[
|
|
settings_data["speech"]["generic_speech_command"],
|
|
_configured_speech_command(),
|
|
],
|
|
)
|
|
def test_default_speech_commands_use_supported_placeholders(speech_command):
|
|
speech_driver = genericDriver.driver()
|
|
speech_driver.speech_command = speech_command
|
|
utterance = {
|
|
"volume": "150",
|
|
"module": "",
|
|
"language": "en-US",
|
|
"voice": "voice-name",
|
|
"pitch": "50",
|
|
"rate": "240",
|
|
"text": "hello",
|
|
}
|
|
|
|
built_command = speech_driver._build_speech_command(utterance)
|
|
|
|
assert not any("fenrir_" in argument for argument in built_command)
|