mirror of
https://github.com/home-assistant/core.git
synced 2025-04-27 02:37:50 +00:00
72 lines
2.1 KiB
Python
72 lines
2.1 KiB
Python
"""Common fixtures and objects for the LG webOS TV integration tests."""
|
|
|
|
from collections.abc import Generator
|
|
from unittest.mock import AsyncMock, Mock, patch
|
|
|
|
from aiowebostv import WebOsTvInfo, WebOsTvState
|
|
import pytest
|
|
|
|
from homeassistant.components.webostv.const import LIVE_TV_APP_ID
|
|
|
|
from .const import (
|
|
CHANNEL_1,
|
|
CHANNEL_2,
|
|
CLIENT_KEY,
|
|
FAKE_UUID,
|
|
MOCK_APPS,
|
|
MOCK_INPUTS,
|
|
TV_MODEL,
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_setup_entry() -> Generator[AsyncMock]:
|
|
"""Override async_setup_entry."""
|
|
with patch(
|
|
"homeassistant.components.webostv.async_setup_entry", return_value=True
|
|
) as mock_setup_entry:
|
|
yield mock_setup_entry
|
|
|
|
|
|
@pytest.fixture(name="client")
|
|
def client_fixture():
|
|
"""Patch of client library for tests."""
|
|
with (
|
|
patch(
|
|
"homeassistant.components.webostv.WebOsClient", autospec=True
|
|
) as mock_client_class,
|
|
patch(
|
|
"homeassistant.components.webostv.config_flow.WebOsClient",
|
|
new=mock_client_class,
|
|
),
|
|
):
|
|
client = mock_client_class.return_value
|
|
client.tv_info = WebOsTvInfo(
|
|
hello={"deviceUUID": FAKE_UUID},
|
|
system={"modelName": TV_MODEL, "serialNumber": "1234567890"},
|
|
software={"major_ver": "major", "minor_ver": "minor"},
|
|
)
|
|
client.client_key = CLIENT_KEY
|
|
client.tv_state = WebOsTvState(
|
|
apps=MOCK_APPS,
|
|
inputs=MOCK_INPUTS,
|
|
current_app_id=LIVE_TV_APP_ID,
|
|
channels=[CHANNEL_1, CHANNEL_2],
|
|
current_channel=CHANNEL_1,
|
|
volume=37,
|
|
sound_output="speaker",
|
|
muted=False,
|
|
is_on=True,
|
|
media_state=[{"playState": ""}],
|
|
)
|
|
|
|
client.is_registered = Mock(return_value=True)
|
|
client.is_connected = Mock(return_value=True)
|
|
|
|
async def mock_state_update_callback():
|
|
await client.register_state_update_callback.call_args[0][0](client.tv_state)
|
|
|
|
client.mock_state_update = AsyncMock(side_effect=mock_state_update_callback)
|
|
|
|
yield client
|