Use config entry title to name SamsungTV entities (#144254)

This commit is contained in:
epenet 2025-05-06 15:52:33 +02:00 committed by GitHub
parent fbae79fab2
commit bdf6f7f590
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 14 additions and 19 deletions

View File

@ -12,7 +12,6 @@ from homeassistant.const import (
CONF_HOST, CONF_HOST,
CONF_MAC, CONF_MAC,
CONF_MODEL, CONF_MODEL,
CONF_NAME,
) )
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import device_registry as dr from homeassistant.helpers import device_registry as dr
@ -41,7 +40,6 @@ class SamsungTVEntity(CoordinatorEntity[SamsungTVDataUpdateCoordinator], Entity)
# Fallback for legacy models that doesn't have a API to retrieve MAC or SerialNumber # Fallback for legacy models that doesn't have a API to retrieve MAC or SerialNumber
self._attr_unique_id = config_entry.unique_id or config_entry.entry_id self._attr_unique_id = config_entry.unique_id or config_entry.entry_id
self._attr_device_info = DeviceInfo( self._attr_device_info = DeviceInfo(
name=config_entry.data.get(CONF_NAME),
manufacturer=config_entry.data.get(CONF_MANUFACTURER), manufacturer=config_entry.data.get(CONF_MANUFACTURER),
model=config_entry.data.get(CONF_MODEL), model=config_entry.data.get(CONF_MODEL),
model_id=config_entry.data.get(CONF_MODEL), model_id=config_entry.data.get(CONF_MODEL),

View File

@ -89,7 +89,7 @@
StateSnapshot({ StateSnapshot({
'attributes': ReadOnlyDict({ 'attributes': ReadOnlyDict({
'device_class': 'tv', 'device_class': 'tv',
'friendly_name': 'any', 'friendly_name': 'Mock Title',
'is_volume_muted': False, 'is_volume_muted': False,
'source_list': list([ 'source_list': list([
'TV', 'TV',
@ -98,7 +98,7 @@
'supported_features': <MediaPlayerEntityFeature: 24509>, 'supported_features': <MediaPlayerEntityFeature: 24509>,
}), }),
'context': <ANY>, 'context': <ANY>,
'entity_id': 'media_player.any', 'entity_id': 'media_player.mock_title',
'last_changed': <ANY>, 'last_changed': <ANY>,
'last_reported': <ANY>, 'last_reported': <ANY>,
'last_updated': <ANY>, 'last_updated': <ANY>,
@ -123,7 +123,7 @@
'disabled_by': None, 'disabled_by': None,
'domain': 'media_player', 'domain': 'media_player',
'entity_category': None, 'entity_category': None,
'entity_id': 'media_player.any', 'entity_id': 'media_player.mock_title',
'has_entity_name': True, 'has_entity_name': True,
'hidden_by': None, 'hidden_by': None,
'icon': None, 'icon': None,

View File

@ -54,7 +54,7 @@ async def test_if_fires_on_turn_on_request(
) -> None: ) -> None:
"""Test for turn_on and turn_off triggers firing.""" """Test for turn_on and turn_off triggers firing."""
await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS) await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS)
entity_id = "media_player.fake" entity_id = "media_player.mock_title"
device = device_registry.async_get_device( device = device_registry.async_get_device(
identifiers={(DOMAIN, "be9554b9-c9fb-41f4-8920-22da015376a4")} identifiers={(DOMAIN, "be9554b9-c9fb-41f4-8920-22da015376a4")}

View File

@ -49,7 +49,7 @@ from .const import (
from tests.common import MockConfigEntry, load_json_object_fixture from tests.common import MockConfigEntry, load_json_object_fixture
ENTITY_ID = f"{MP_DOMAIN}.fake_name" ENTITY_ID = f"{MP_DOMAIN}.mock_title"
MOCK_CONFIG = { MOCK_CONFIG = {
CONF_HOST: "fake_host", CONF_HOST: "fake_host",
CONF_NAME: "fake_name", CONF_NAME: "fake_name",
@ -65,7 +65,7 @@ async def test_setup(hass: HomeAssistant) -> None:
# test name and turn_on # test name and turn_on
assert state assert state
assert state.name == "fake_name" assert state.name == "Mock Title"
assert ( assert (
state.attributes[ATTR_SUPPORTED_FEATURES] state.attributes[ATTR_SUPPORTED_FEATURES]
== SUPPORT_SAMSUNGTV | MediaPlayerEntityFeature.TURN_ON == SUPPORT_SAMSUNGTV | MediaPlayerEntityFeature.TURN_ON
@ -151,8 +151,8 @@ async def test_setup_updates_from_ssdp(
await hass.async_block_till_done() await hass.async_block_till_done()
await hass.async_block_till_done() await hass.async_block_till_done()
assert hass.states.get("media_player.any") == snapshot assert hass.states.get("media_player.mock_title") == snapshot
assert entity_registry.async_get("media_player.any") == snapshot assert entity_registry.async_get("media_player.mock_title") == snapshot
assert ( assert (
entry.data[CONF_SSDP_MAIN_TV_AGENT_LOCATION] entry.data[CONF_SSDP_MAIN_TV_AGENT_LOCATION]
== "https://fake_host:12345/tv_agent" == "https://fake_host:12345/tv_agent"

View File

@ -94,7 +94,7 @@ from tests.common import (
load_json_object_fixture, load_json_object_fixture,
) )
ENTITY_ID = f"{MP_DOMAIN}.fake" ENTITY_ID = f"{MP_DOMAIN}.mock_title"
MOCK_CONFIGWS = { MOCK_CONFIGWS = {
CONF_HOST: "fake_host", CONF_HOST: "fake_host",
CONF_NAME: "fake", CONF_NAME: "fake",
@ -158,12 +158,9 @@ async def test_setup_websocket_2(
hass: HomeAssistant, freezer: FrozenDateTimeFactory hass: HomeAssistant, freezer: FrozenDateTimeFactory
) -> None: ) -> None:
"""Test setup of platform from config entry.""" """Test setup of platform from config entry."""
entity_id = f"{MP_DOMAIN}.fake"
entry = MockConfigEntry( entry = MockConfigEntry(
domain=DOMAIN, domain=DOMAIN,
data=MOCK_ENTRY_WS, data=MOCK_ENTRY_WS,
unique_id=entity_id,
) )
entry.add_to_hass(hass) entry.add_to_hass(hass)
@ -188,7 +185,7 @@ async def test_setup_websocket_2(
async_fire_time_changed(hass) async_fire_time_changed(hass)
await hass.async_block_till_done(wait_background_tasks=True) await hass.async_block_till_done(wait_background_tasks=True)
state = hass.states.get(entity_id) state = hass.states.get(ENTITY_ID)
assert state assert state
remote_class.assert_called_once_with(**MOCK_CALLS_WS) remote_class.assert_called_once_with(**MOCK_CALLS_WS)
@ -640,7 +637,7 @@ async def test_name(hass: HomeAssistant) -> None:
"""Test for name property.""" """Test for name property."""
await setup_samsungtv_entry(hass, MOCK_CONFIG) await setup_samsungtv_entry(hass, MOCK_CONFIG)
state = hass.states.get(ENTITY_ID) state = hass.states.get(ENTITY_ID)
assert state.attributes[ATTR_FRIENDLY_NAME] == "fake" assert state.attributes[ATTR_FRIENDLY_NAME] == "Mock Title"
@pytest.mark.usefixtures("remote") @pytest.mark.usefixtures("remote")

View File

@ -21,7 +21,7 @@ from .const import MOCK_CONFIG, MOCK_ENTRY_WS_WITH_MAC, MOCK_ENTRYDATA_ENCRYPTED
from tests.common import MockConfigEntry from tests.common import MockConfigEntry
ENTITY_ID = f"{REMOTE_DOMAIN}.fake" ENTITY_ID = f"{REMOTE_DOMAIN}.mock_title"
@pytest.mark.usefixtures("remoteencws", "rest_api") @pytest.mark.usefixtures("remoteencws", "rest_api")

View File

@ -28,7 +28,7 @@ async def test_turn_on_trigger_device_id(
"""Test for turn_on triggers by device_id firing.""" """Test for turn_on triggers by device_id firing."""
await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS) await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS)
entity_id = f"{entity_domain}.fake" entity_id = f"{entity_domain}.mock_title"
device = device_registry.async_get_device( device = device_registry.async_get_device(
identifiers={(DOMAIN, "be9554b9-c9fb-41f4-8920-22da015376a4")} identifiers={(DOMAIN, "be9554b9-c9fb-41f4-8920-22da015376a4")}
@ -92,7 +92,7 @@ async def test_turn_on_trigger_entity_id(
"""Test for turn_on triggers by entity_id firing.""" """Test for turn_on triggers by entity_id firing."""
await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS) await setup_samsungtv_entry(hass, MOCK_ENTRYDATA_ENCRYPTED_WS)
entity_id = f"{entity_domain}.fake" entity_id = f"{entity_domain}.mock_title"
assert await async_setup_component( assert await async_setup_component(
hass, hass,