core/tests/components/samsungtv/test_diagnostics.py

142 lines
4.5 KiB
Python
Raw Normal View History

"""Test samsungtv diagnostics."""
from unittest.mock import Mock
import pytest
from samsungtvws.exceptions import HttpApiError
from homeassistant.components.diagnostics import REDACTED
from homeassistant.core import HomeAssistant
from . import setup_samsungtv_entry
from .const import (
MOCK_ENTRY_WS_WITH_MAC,
MOCK_ENTRYDATA_ENCRYPTED_WS,
SAMPLE_DEVICE_INFO_UE48JU6400,
SAMPLE_DEVICE_INFO_WIFI,
)
from tests.common import ANY
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
@pytest.mark.usefixtures("remotews", "rest_api")
async def test_entry_diagnostics(
hass: HomeAssistant, hass_client: ClientSessionGenerator
) -> None:
"""Test config entry diagnostics."""
config_entry = await setup_samsungtv_entry(hass, MOCK_ENTRY_WS_WITH_MAC)
assert await get_diagnostics_for_config_entry(hass, hass_client, config_entry) == {
"entry": {
"created_at": ANY,
"data": {
"host": "fake_host",
"ip_address": "test",
"mac": "aa:bb:cc:dd:ee:ff",
"method": "websocket",
"model": "82GXARRS",
"name": "fake",
"port": 8002,
"token": REDACTED,
},
"disabled_by": None,
"discovery_keys": {},
"domain": "samsungtv",
"entry_id": "123456",
"minor_version": 2,
"modified_at": ANY,
"options": {},
"pref_disable_new_entities": False,
"pref_disable_polling": False,
"source": "user",
Merge config subentry feature branch to dev (#136121) * Reapply "Add support for subentries to config entries" (#133470) (#136061) * Reapply "Add support for subentries to config entries" (#133470) This reverts commit ecb3bf79f32a2e25d141ff467e5958826ed9fc3a. * Update test snapshot * Add config subentry support to device registry (#128157) * Add config subentry support to device registry * Apply suggestions from code review * Update syrupy serializer * Update snapshots * Address review comments * Allow a device to be connected to no or a single subentry of a config entry * Update snapshots * Revert "Allow a device to be connected to no or a single subentry of a config entry" This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2. * Update test snapshots * Bump release version in comments * Rename config_subentries to config_entries_subentries * Add config subentry support to entity registry (#128155) * Add config subentry support to entity registry * Update syrupy serializer * Update snapshots * Update snapshots * Accept suggested changes * Clean registries when removing subentry (#136671) * Clean up registries when removing subentry * Update tests * Clean up subentries from deleted devices when removing config entry (#136669) * Clean up subentries from deleted devices when removing config entry * Move * Add config subentry support to entity platform (#128161) * Add config subentry support to entity platform * Rename subentry_id to config_subentry_id * Store subentry type in subentry (#136687) * Add reconfigure support to config subentries (#133353) * Add reconfigure support to config subentries * Update test * Minor adjustment * Rename supported_subentry_flows to supported_subentry_types * Address review comments * Add subentry support to kitchen sink (#136755) * Add subentry support to kitchen sink * Add subentry reconfigure support to kitchen_sink * Update kitchen_sink tests with subentry type stored in config entry * Update kitchen_sink * Update kitchen_sink * Adjust kitchen sink tests * Fix hassfest * Apply suggestions from code review Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Improve docstrings and strings.json --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-10 15:40:07 +00:00
"subentries": [],
"title": "Mock Title",
"unique_id": "any",
"version": 2,
},
"device_info": SAMPLE_DEVICE_INFO_WIFI,
}
@pytest.mark.usefixtures("remoteencws")
async def test_entry_diagnostics_encrypted(
hass: HomeAssistant, rest_api: Mock, hass_client: ClientSessionGenerator
) -> None:
"""Test config entry diagnostics."""
rest_api.rest_device_info.return_value = SAMPLE_DEVICE_INFO_UE48JU6400
config_entry = await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS)
assert await get_diagnostics_for_config_entry(hass, hass_client, config_entry) == {
"entry": {
"created_at": ANY,
"data": {
"host": "fake_host",
"ip_address": "test",
"mac": "aa:bb:cc:dd:ee:ff",
"method": "encrypted",
"model": "UE48JU6400",
"name": "fake",
"port": 8000,
"token": REDACTED,
"session_id": REDACTED,
},
"disabled_by": None,
"discovery_keys": {},
"domain": "samsungtv",
"entry_id": "123456",
"minor_version": 2,
"modified_at": ANY,
"options": {},
"pref_disable_new_entities": False,
"pref_disable_polling": False,
"source": "user",
Merge config subentry feature branch to dev (#136121) * Reapply "Add support for subentries to config entries" (#133470) (#136061) * Reapply "Add support for subentries to config entries" (#133470) This reverts commit ecb3bf79f32a2e25d141ff467e5958826ed9fc3a. * Update test snapshot * Add config subentry support to device registry (#128157) * Add config subentry support to device registry * Apply suggestions from code review * Update syrupy serializer * Update snapshots * Address review comments * Allow a device to be connected to no or a single subentry of a config entry * Update snapshots * Revert "Allow a device to be connected to no or a single subentry of a config entry" This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2. * Update test snapshots * Bump release version in comments * Rename config_subentries to config_entries_subentries * Add config subentry support to entity registry (#128155) * Add config subentry support to entity registry * Update syrupy serializer * Update snapshots * Update snapshots * Accept suggested changes * Clean registries when removing subentry (#136671) * Clean up registries when removing subentry * Update tests * Clean up subentries from deleted devices when removing config entry (#136669) * Clean up subentries from deleted devices when removing config entry * Move * Add config subentry support to entity platform (#128161) * Add config subentry support to entity platform * Rename subentry_id to config_subentry_id * Store subentry type in subentry (#136687) * Add reconfigure support to config subentries (#133353) * Add reconfigure support to config subentries * Update test * Minor adjustment * Rename supported_subentry_flows to supported_subentry_types * Address review comments * Add subentry support to kitchen sink (#136755) * Add subentry support to kitchen sink * Add subentry reconfigure support to kitchen_sink * Update kitchen_sink tests with subentry type stored in config entry * Update kitchen_sink * Update kitchen_sink * Adjust kitchen sink tests * Fix hassfest * Apply suggestions from code review Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Improve docstrings and strings.json --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-10 15:40:07 +00:00
"subentries": [],
"title": "Mock Title",
"unique_id": "any",
"version": 2,
},
"device_info": SAMPLE_DEVICE_INFO_UE48JU6400,
}
@pytest.mark.usefixtures("remoteencws")
async def test_entry_diagnostics_encrypte_offline(
hass: HomeAssistant, rest_api: Mock, hass_client: ClientSessionGenerator
) -> None:
"""Test config entry diagnostics."""
rest_api.rest_device_info.side_effect = HttpApiError
config_entry = await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS)
assert await get_diagnostics_for_config_entry(hass, hass_client, config_entry) == {
"entry": {
"created_at": ANY,
"data": {
"host": "fake_host",
"ip_address": "test",
"mac": "aa:bb:cc:dd:ee:ff",
"method": "encrypted",
"name": "fake",
"port": 8000,
"token": REDACTED,
"session_id": REDACTED,
},
"disabled_by": None,
"discovery_keys": {},
"domain": "samsungtv",
"entry_id": "123456",
"minor_version": 2,
"modified_at": ANY,
"options": {},
"pref_disable_new_entities": False,
"pref_disable_polling": False,
"source": "user",
Merge config subentry feature branch to dev (#136121) * Reapply "Add support for subentries to config entries" (#133470) (#136061) * Reapply "Add support for subentries to config entries" (#133470) This reverts commit ecb3bf79f32a2e25d141ff467e5958826ed9fc3a. * Update test snapshot * Add config subentry support to device registry (#128157) * Add config subentry support to device registry * Apply suggestions from code review * Update syrupy serializer * Update snapshots * Address review comments * Allow a device to be connected to no or a single subentry of a config entry * Update snapshots * Revert "Allow a device to be connected to no or a single subentry of a config entry" This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2. * Update test snapshots * Bump release version in comments * Rename config_subentries to config_entries_subentries * Add config subentry support to entity registry (#128155) * Add config subentry support to entity registry * Update syrupy serializer * Update snapshots * Update snapshots * Accept suggested changes * Clean registries when removing subentry (#136671) * Clean up registries when removing subentry * Update tests * Clean up subentries from deleted devices when removing config entry (#136669) * Clean up subentries from deleted devices when removing config entry * Move * Add config subentry support to entity platform (#128161) * Add config subentry support to entity platform * Rename subentry_id to config_subentry_id * Store subentry type in subentry (#136687) * Add reconfigure support to config subentries (#133353) * Add reconfigure support to config subentries * Update test * Minor adjustment * Rename supported_subentry_flows to supported_subentry_types * Address review comments * Add subentry support to kitchen sink (#136755) * Add subentry support to kitchen sink * Add subentry reconfigure support to kitchen_sink * Update kitchen_sink tests with subentry type stored in config entry * Update kitchen_sink * Update kitchen_sink * Adjust kitchen sink tests * Fix hassfest * Apply suggestions from code review Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Improve docstrings and strings.json --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots * Update snapshots --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-10 15:40:07 +00:00
"subentries": [],
"title": "Mock Title",
"unique_id": "any",
"version": 2,
},
"device_info": None,
}