Cleanup language support on TTS (#5255)
* Cleanup language support on TTS * change to default_language & address comments * Cleanup not needed code / comment from paulus
This commit is contained in:
parent
467cb18625
commit
3f3a3bcc8a
6 changed files with 156 additions and 59 deletions
|
@ -22,7 +22,7 @@ class TestTTS(object):
|
|||
def setup_method(self):
|
||||
"""Setup things to be run when tests are started."""
|
||||
self.hass = get_test_home_assistant()
|
||||
self.demo_provider = DemoProvider()
|
||||
self.demo_provider = DemoProvider('en')
|
||||
self.default_tts_cache = self.hass.config.path(tts.DEFAULT_CACHE_DIR)
|
||||
|
||||
def teardown_method(self):
|
||||
|
@ -95,7 +95,7 @@ class TestTTS(object):
|
|||
config = {
|
||||
tts.DOMAIN: {
|
||||
'platform': 'demo',
|
||||
'language': 'lang'
|
||||
'language': 'de'
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,11 +111,23 @@ class TestTTS(object):
|
|||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_ID].find(
|
||||
"/api/tts_proxy/265944c108cbb00b2a621be5930513e03a0bb2cd"
|
||||
"_lang_demo.mp3") \
|
||||
"_de_demo.mp3") \
|
||||
!= -1
|
||||
assert os.path.isfile(os.path.join(
|
||||
self.default_tts_cache,
|
||||
"265944c108cbb00b2a621be5930513e03a0bb2cd_lang_demo.mp3"))
|
||||
"265944c108cbb00b2a621be5930513e03a0bb2cd_de_demo.mp3"))
|
||||
|
||||
def test_setup_component_and_test_service_with_wrong_conf_language(self):
|
||||
"""Setup the demo platform and call service with wrong config."""
|
||||
config = {
|
||||
tts.DOMAIN: {
|
||||
'platform': 'demo',
|
||||
'language': 'ru'
|
||||
}
|
||||
}
|
||||
|
||||
with assert_setup_component(0, tts.DOMAIN):
|
||||
setup_component(self.hass, tts.DOMAIN, config)
|
||||
|
||||
def test_setup_component_and_test_service_with_service_language(self):
|
||||
"""Setup the demo platform and call service."""
|
||||
|
@ -127,6 +139,35 @@ class TestTTS(object):
|
|||
}
|
||||
}
|
||||
|
||||
with assert_setup_component(1, tts.DOMAIN):
|
||||
setup_component(self.hass, tts.DOMAIN, config)
|
||||
|
||||
self.hass.services.call(tts.DOMAIN, 'demo_say', {
|
||||
tts.ATTR_MESSAGE: "I person is on front of your door.",
|
||||
tts.ATTR_LANGUAGE: "de",
|
||||
})
|
||||
self.hass.block_till_done()
|
||||
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_ID].find(
|
||||
"/api/tts_proxy/265944c108cbb00b2a621be5930513e03a0bb2cd"
|
||||
"_de_demo.mp3") \
|
||||
!= -1
|
||||
assert os.path.isfile(os.path.join(
|
||||
self.default_tts_cache,
|
||||
"265944c108cbb00b2a621be5930513e03a0bb2cd_de_demo.mp3"))
|
||||
|
||||
def test_setup_component_test_service_with_wrong_service_language(self):
|
||||
"""Setup the demo platform and call service."""
|
||||
calls = mock_service(self.hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
|
||||
|
||||
config = {
|
||||
tts.DOMAIN: {
|
||||
'platform': 'demo',
|
||||
}
|
||||
}
|
||||
|
||||
with assert_setup_component(1, tts.DOMAIN):
|
||||
setup_component(self.hass, tts.DOMAIN, config)
|
||||
|
||||
|
@ -136,13 +177,8 @@ class TestTTS(object):
|
|||
})
|
||||
self.hass.block_till_done()
|
||||
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_ID].find(
|
||||
"/api/tts_proxy/265944c108cbb00b2a621be5930513e03a0bb2cd"
|
||||
"_lang_demo.mp3") \
|
||||
!= -1
|
||||
assert os.path.isfile(os.path.join(
|
||||
assert len(calls) == 0
|
||||
assert not os.path.isfile(os.path.join(
|
||||
self.default_tts_cache,
|
||||
"265944c108cbb00b2a621be5930513e03a0bb2cd_lang_demo.mp3"))
|
||||
|
||||
|
@ -198,7 +234,7 @@ class TestTTS(object):
|
|||
|
||||
assert len(calls) == 1
|
||||
req = requests.get(calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
_, demo_data = self.demo_provider.get_tts_audio("bla")
|
||||
_, demo_data = self.demo_provider.get_tts_audio("bla", 'en')
|
||||
assert req.status_code == 200
|
||||
assert req.content == demo_data
|
||||
|
||||
|
@ -319,7 +355,7 @@ class TestTTS(object):
|
|||
"""Setup demo platform with cache and call service without cache."""
|
||||
calls = mock_service(self.hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
|
||||
|
||||
_, demo_data = self.demo_provider.get_tts_audio("bla")
|
||||
_, demo_data = self.demo_provider.get_tts_audio("bla", 'en')
|
||||
cache_file = os.path.join(
|
||||
self.default_tts_cache,
|
||||
"265944c108cbb00b2a621be5930513e03a0bb2cd_en_demo.mp3")
|
||||
|
@ -339,7 +375,7 @@ class TestTTS(object):
|
|||
setup_component(self.hass, tts.DOMAIN, config)
|
||||
|
||||
with patch('homeassistant.components.tts.demo.DemoProvider.'
|
||||
'get_tts_audio', return_value=None):
|
||||
'get_tts_audio', return_value=(None, None)):
|
||||
self.hass.services.call(tts.DOMAIN, 'demo_say', {
|
||||
tts.ATTR_MESSAGE: "I person is on front of your door.",
|
||||
})
|
||||
|
@ -352,7 +388,7 @@ class TestTTS(object):
|
|||
!= -1
|
||||
|
||||
@patch('homeassistant.components.tts.demo.DemoProvider.get_tts_audio',
|
||||
return_value=None)
|
||||
return_value=(None, None))
|
||||
def test_setup_component_test_with_error_on_get_tts(self, tts_mock):
|
||||
"""Setup demo platform with wrong get_tts_audio."""
|
||||
calls = mock_service(self.hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
|
||||
|
@ -375,7 +411,7 @@ class TestTTS(object):
|
|||
|
||||
def test_setup_component_load_cache_retrieve_without_mem_cache(self):
|
||||
"""Setup component and load cache and get without mem cache."""
|
||||
_, demo_data = self.demo_provider.get_tts_audio("bla")
|
||||
_, demo_data = self.demo_provider.get_tts_audio("bla", 'en')
|
||||
cache_file = os.path.join(
|
||||
self.default_tts_cache,
|
||||
"265944c108cbb00b2a621be5930513e03a0bb2cd_en_demo.mp3")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue