From 6962b51c214497beb00cce9485f3d1fcea1a0e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Golonka?= Date: Fri, 30 Jul 2021 18:24:24 +0200 Subject: [PATCH 1/2] Disable tests for oneCore on versions of Windows where it is not supported --- tests/unit/test_synthDriverHandler.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/tests/unit/test_synthDriverHandler.py b/tests/unit/test_synthDriverHandler.py index 3e907e144ef..6c1f6734dcb 100644 --- a/tests/unit/test_synthDriverHandler.py +++ b/tests/unit/test_synthDriverHandler.py @@ -8,6 +8,7 @@ import config import languageHandler import synthDriverHandler +from synthDrivers.oneCore import SynthDriver as OneCoreSynthDriver from typing import Callable import unittest @@ -31,8 +32,7 @@ def initSettings(self): def _getDefaultVoice(self, pickAny: bool = True): assert self.name == "oneCore" # this should only be used when mocking the oneCore synth - from synthDrivers import oneCore - return oneCore.SynthDriver._getDefaultVoice(self, pickAny) + return OneCoreSynthDriver._getDefaultVoice(self, pickAny) class test_synthDriverHandler(unittest.TestCase): @@ -94,23 +94,31 @@ def test_setSynth_defaultSynths_fallbackMode(self): self.assertEqual(synthName, synthDriverHandler.getSynth().name) self.assertEqual(FAKE_DEFAULT_LANG, config.conf["speech"]["synth"]) - def test_setSynth_auto_usesOneCore_ifSupportsDefaultLangauge(self): + def test_setSynth_auto_usesOneCore_ifSupportsDefaultLanguage(self): """ - Ensures that if oneCore supports the current language, setSynth("auto") uses "oneCore". + Ensures that if oneCore supports the current language, setSynth("auto") uses "oneCore" on versions + of Windows where oneCore is the default - else eSpeak is used regardless of the language support. """ # test setup ensures curLang is supported for oneCore synthDriverHandler.setSynth(None) # reset the synth so there is no fallback synthDriverHandler.setSynth("auto") - self.assertEqual(synthDriverHandler.getSynth().name, "oneCore") + if OneCoreSynthDriver.check(): + self.assertEqual(synthDriverHandler.getSynth().name, "oneCore") + else: + self.assertEqual(synthDriverHandler.getSynth().name, "espeak") - def test_setSynth_auto_fallback_ifOneCoreDoesntSupportDefaultLangauge(self): + def test_setSynth_auto_fallback_ifOneCoreDoesntSupportDefaultLanguage(self): """ - Ensures that if oneCore doesn't support the current language, setSynth("auto") falls back to the + Ensures that if oneCore is supported under the currently running version of Windows + yet it doesn't support the current language, setSynth("auto") falls back to the current synth, or espeak if there is no current synth. """ languageHandler.curLang = "bar" # set the lang so it is not supported synthDriverHandler.setSynth("auto") - self.assertEqual(synthDriverHandler.getSynth().name, FAKE_DEFAULT_SYNTH_NAME) + if OneCoreSynthDriver.check(): # OneCore failed to initialize so current synth unchanged + self.assertEqual(synthDriverHandler.getSynth().name, FAKE_DEFAULT_SYNTH_NAME) + else: # OneCore unsupported - there are no checks for the current language being supported by eSpeak + self.assertEqual(synthDriverHandler.getSynth().name, "espeak") synthDriverHandler.setSynth(None) # reset the synth so there is no fallback synthDriverHandler.setSynth("auto") self.assertEqual(synthDriverHandler.getSynth().name, "espeak") From de9cd871fc743d05021bafaa9701d1484fd1fa7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Golonka?= Date: Mon, 2 Aug 2021 12:37:37 +0200 Subject: [PATCH 2/2] Disable tests for oneCore on versions of Windows where it is not supported --- tests/unit/test_synthDriverHandler.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/tests/unit/test_synthDriverHandler.py b/tests/unit/test_synthDriverHandler.py index 6c1f6734dcb..75ebf4f83f7 100644 --- a/tests/unit/test_synthDriverHandler.py +++ b/tests/unit/test_synthDriverHandler.py @@ -94,31 +94,25 @@ def test_setSynth_defaultSynths_fallbackMode(self): self.assertEqual(synthName, synthDriverHandler.getSynth().name) self.assertEqual(FAKE_DEFAULT_LANG, config.conf["speech"]["synth"]) + @unittest.skipUnless(OneCoreSynthDriver.check(), "Requires oneCore being supported under current OS") def test_setSynth_auto_usesOneCore_ifSupportsDefaultLanguage(self): """ - Ensures that if oneCore supports the current language, setSynth("auto") uses "oneCore" on versions - of Windows where oneCore is the default - else eSpeak is used regardless of the language support. + Ensures that if oneCore supports the current language, setSynth("auto") uses "oneCore". """ # test setup ensures curLang is supported for oneCore synthDriverHandler.setSynth(None) # reset the synth so there is no fallback synthDriverHandler.setSynth("auto") - if OneCoreSynthDriver.check(): - self.assertEqual(synthDriverHandler.getSynth().name, "oneCore") - else: - self.assertEqual(synthDriverHandler.getSynth().name, "espeak") + self.assertEqual(synthDriverHandler.getSynth().name, "oneCore") + @unittest.skipUnless(OneCoreSynthDriver.check(), "Requires oneCore being supported under current OS") def test_setSynth_auto_fallback_ifOneCoreDoesntSupportDefaultLanguage(self): """ - Ensures that if oneCore is supported under the currently running version of Windows - yet it doesn't support the current language, setSynth("auto") falls back to the + Ensures that if oneCore doesn't support the current language, setSynth("auto") falls back to the current synth, or espeak if there is no current synth. """ languageHandler.curLang = "bar" # set the lang so it is not supported synthDriverHandler.setSynth("auto") - if OneCoreSynthDriver.check(): # OneCore failed to initialize so current synth unchanged - self.assertEqual(synthDriverHandler.getSynth().name, FAKE_DEFAULT_SYNTH_NAME) - else: # OneCore unsupported - there are no checks for the current language being supported by eSpeak - self.assertEqual(synthDriverHandler.getSynth().name, "espeak") + self.assertEqual(synthDriverHandler.getSynth().name, FAKE_DEFAULT_SYNTH_NAME) synthDriverHandler.setSynth(None) # reset the synth so there is no fallback synthDriverHandler.setSynth("auto") self.assertEqual(synthDriverHandler.getSynth().name, "espeak")