core/tests/components/stt/test_legacy.py

58 lines
1.6 KiB
Python

"""Test the legacy stt setup."""
from __future__ import annotations
from pathlib import Path
import pytest
from homeassistant.components.stt import Provider
from homeassistant.core import HomeAssistant
from homeassistant.helpers.discovery import async_load_platform
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .common import mock_stt_platform
async def test_invalid_platform(
hass: HomeAssistant, caplog: pytest.LogCaptureFixture, tmp_path: Path
) -> None:
"""Test platform setup with an invalid platform."""
await async_load_platform(
hass,
"stt",
"bad_stt",
{"stt": [{"platform": "bad_stt"}]},
hass_config={"stt": [{"platform": "bad_stt"}]},
)
await hass.async_block_till_done()
assert "Unknown speech-to-text platform specified" in caplog.text
async def test_platform_setup_with_error(
hass: HomeAssistant, caplog: pytest.LogCaptureFixture, tmp_path: Path
) -> None:
"""Test platform setup with an error during setup."""
async def async_get_engine(
hass: HomeAssistant,
config: ConfigType,
discovery_info: DiscoveryInfoType | None = None,
) -> Provider:
"""Raise exception during platform setup."""
raise Exception("Setup error") # noqa: TRY002
mock_stt_platform(hass, tmp_path, "bad_stt", async_get_engine=async_get_engine)
await async_load_platform(
hass,
"stt",
"bad_stt",
{},
hass_config={"stt": [{"platform": "bad_stt"}]},
)
await hass.async_block_till_done()
assert "Error setting up platform: bad_stt" in caplog.text