67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
"""Test samsungtv diagnostics."""
|
|
|
|
from unittest.mock import Mock
|
|
|
|
import pytest
|
|
from samsungtvws.exceptions import HttpApiError
|
|
from syrupy.assertion import SnapshotAssertion
|
|
from syrupy.filters import props
|
|
|
|
from homeassistant.components.samsungtv.const import DOMAIN
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from . import setup_samsungtv_entry
|
|
from .const import ENTRYDATA_ENCRYPTED_WEBSOCKET, ENTRYDATA_WEBSOCKET
|
|
|
|
from tests.common import async_load_json_object_fixture
|
|
from tests.components.diagnostics import get_diagnostics_for_config_entry
|
|
from tests.typing import ClientSessionGenerator
|
|
|
|
|
|
@pytest.mark.usefixtures("remote_websocket", "rest_api")
|
|
async def test_entry_diagnostics(
|
|
hass: HomeAssistant,
|
|
hass_client: ClientSessionGenerator,
|
|
snapshot: SnapshotAssertion,
|
|
) -> None:
|
|
"""Test config entry diagnostics."""
|
|
config_entry = await setup_samsungtv_entry(hass, ENTRYDATA_WEBSOCKET)
|
|
|
|
assert await get_diagnostics_for_config_entry(
|
|
hass, hass_client, config_entry
|
|
) == snapshot(exclude=props("created_at", "modified_at"))
|
|
|
|
|
|
@pytest.mark.usefixtures("remote_encrypted_websocket")
|
|
async def test_entry_diagnostics_encrypted(
|
|
hass: HomeAssistant,
|
|
rest_api: Mock,
|
|
hass_client: ClientSessionGenerator,
|
|
snapshot: SnapshotAssertion,
|
|
) -> None:
|
|
"""Test config entry diagnostics."""
|
|
rest_api.rest_device_info.return_value = await async_load_json_object_fixture(
|
|
hass, "device_info_UE48JU6400.json", DOMAIN
|
|
)
|
|
config_entry = await setup_samsungtv_entry(hass, ENTRYDATA_ENCRYPTED_WEBSOCKET)
|
|
|
|
assert await get_diagnostics_for_config_entry(
|
|
hass, hass_client, config_entry
|
|
) == snapshot(exclude=props("created_at", "modified_at"))
|
|
|
|
|
|
@pytest.mark.usefixtures("remote_encrypted_websocket")
|
|
async def test_entry_diagnostics_encrypte_offline(
|
|
hass: HomeAssistant,
|
|
rest_api: Mock,
|
|
hass_client: ClientSessionGenerator,
|
|
snapshot: SnapshotAssertion,
|
|
) -> None:
|
|
"""Test config entry diagnostics."""
|
|
rest_api.rest_device_info.side_effect = HttpApiError
|
|
config_entry = await setup_samsungtv_entry(hass, ENTRYDATA_ENCRYPTED_WEBSOCKET)
|
|
|
|
assert await get_diagnostics_for_config_entry(
|
|
hass, hass_client, config_entry
|
|
) == snapshot(exclude=props("created_at", "modified_at"))
|