core/tests/components/philips_js/test_diagnostics.py

67 lines
1.9 KiB
Python

"""Test the Philips TV diagnostics platform."""
from unittest.mock import AsyncMock
from haphilipsjs.typing import ChannelListType, ContextType, FavoriteListType
from syrupy import SnapshotAssertion
from syrupy.filters import props
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
TV_CONTEXT = ContextType(level1="NA", level2="NA", level3="NA", data="NA")
TV_CHANNEL_LISTS = {
"all": ChannelListType(
version=2,
id="all",
listType="MixedSources",
medium="mixed",
operator="None",
installCountry="Poland",
Channel=[],
)
}
TV_FAVORITE_LISTS = {
"1": FavoriteListType(
version="60",
id="1",
type="MixedSources",
medium="mixed",
name="Favourites 1",
channels=[],
)
}
async def test_entry_diagnostics(
hass: HomeAssistant,
hass_client: ClientSessionGenerator,
snapshot: SnapshotAssertion,
mock_config_entry: MockConfigEntry,
mock_tv: AsyncMock,
) -> None:
"""Test config entry diagnostics."""
mock_tv.context = TV_CONTEXT
mock_tv.ambilight_topology = None
mock_tv.ambilight_mode_raw = "internal"
mock_tv.ambilight_modes = ["internal", "manual", "expert", "lounge"]
mock_tv.ambilight_power_raw = {"power": "On"}
mock_tv.ambilight_power = "On"
mock_tv.ambilight_measured = None
mock_tv.ambilight_processed = None
mock_tv.screenstate = "On"
mock_tv.channel = None
mock_tv.channel_lists = TV_CHANNEL_LISTS
mock_tv.favorite_lists = TV_FAVORITE_LISTS
assert await hass.config_entries.async_setup(mock_config_entry.entry_id)
result = await get_diagnostics_for_config_entry(
hass, hass_client, mock_config_entry
)
assert result == snapshot(exclude=props("entry_id", "created_at", "modified_at"))