1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00

Deprecate cloud tts gender (#112256)

* Deprecate cloud tts gender option

* Update http api and prefs

* Test migration of prefs to minor version 4

* Adjust breaking date

* Add test for bad voice in http api

* Flatten tts info

* Fix comments

* Fix comment date

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Clarify voice validator

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
This commit is contained in:
Martin Hjelmare
2024-03-20 09:42:40 +01:00
committed by GitHub
parent d31124d5d4
commit ac008a4c6d
8 changed files with 304 additions and 78 deletions

View File

@@ -1,13 +1,15 @@
"""Test Cloud preferences."""
from typing import Any
from unittest.mock import ANY, patch
from unittest.mock import ANY, MagicMock, patch
import pytest
from homeassistant.auth.const import GROUP_ID_ADMIN
from homeassistant.components.cloud.const import DOMAIN, PREF_TTS_DEFAULT_VOICE
from homeassistant.components.cloud.prefs import STORAGE_KEY, CloudPreferences
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
async def test_set_username(hass: HomeAssistant) -> None:
@@ -149,3 +151,26 @@ async def test_import_google_assistant_settings(
prefs = CloudPreferences(hass)
await prefs.async_initialize()
assert prefs.google_connected == google_connected
@pytest.mark.parametrize(
("stored_language", "expected_language", "voice"),
[("en-US", "en-US", "GuyNeural"), ("missing_language", "en-US", "JennyNeural")],
)
async def test_tts_default_voice_legacy_gender(
hass: HomeAssistant,
cloud: MagicMock,
hass_storage: dict[str, Any],
stored_language: str,
expected_language: str,
voice: str,
) -> None:
"""Test tts with legacy gender as default tts voice setting in storage."""
hass_storage[STORAGE_KEY] = {
"version": 1,
"data": {PREF_TTS_DEFAULT_VOICE: [stored_language, "male"]},
}
assert await async_setup_component(hass, DOMAIN, {DOMAIN: {}})
await hass.async_block_till_done()
assert cloud.client.prefs.tts_default_voice == (expected_language, voice)