Fix not including device_name in friendly name if it is None (#95485)
* Omit device_name in friendly name if it is None * Fix test
This commit is contained in:
parent
5d9533fb90
commit
b9c7e7c15e
2 changed files with 19 additions and 9 deletions
|
@ -772,9 +772,10 @@ class Entity(ABC):
|
||||||
):
|
):
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
device_name = device_entry.name_by_user or device_entry.name
|
||||||
if self.use_device_name:
|
if self.use_device_name:
|
||||||
return device_entry.name_by_user or device_entry.name
|
return device_name
|
||||||
return f"{device_entry.name_by_user or device_entry.name} {name}"
|
return f"{device_name} {name}" if device_name else name
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _async_write_ha_state(self) -> None:
|
def _async_write_ha_state(self) -> None:
|
||||||
|
|
|
@ -20,7 +20,7 @@ from homeassistant.const import (
|
||||||
from homeassistant.core import Context, HomeAssistant, HomeAssistantError
|
from homeassistant.core import Context, HomeAssistant, HomeAssistantError
|
||||||
from homeassistant.helpers import device_registry as dr, entity, entity_registry as er
|
from homeassistant.helpers import device_registry as dr, entity, entity_registry as er
|
||||||
from homeassistant.helpers.entity_component import async_update_entity
|
from homeassistant.helpers.entity_component import async_update_entity
|
||||||
from homeassistant.helpers.typing import UNDEFINED
|
from homeassistant.helpers.typing import UNDEFINED, UndefinedType
|
||||||
|
|
||||||
from tests.common import (
|
from tests.common import (
|
||||||
MockConfigEntry,
|
MockConfigEntry,
|
||||||
|
@ -989,12 +989,20 @@ async def _test_friendly_name(
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("has_entity_name", "entity_name", "expected_friendly_name", "warn_implicit_name"),
|
|
||||||
(
|
(
|
||||||
(False, "Entity Blu", "Entity Blu", False),
|
"has_entity_name",
|
||||||
(False, None, None, False),
|
"entity_name",
|
||||||
(True, "Entity Blu", "Device Bla Entity Blu", False),
|
"device_name",
|
||||||
(True, None, "Device Bla", False),
|
"expected_friendly_name",
|
||||||
|
"warn_implicit_name",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
(False, "Entity Blu", "Device Bla", "Entity Blu", False),
|
||||||
|
(False, None, "Device Bla", None, False),
|
||||||
|
(True, "Entity Blu", "Device Bla", "Device Bla Entity Blu", False),
|
||||||
|
(True, None, "Device Bla", "Device Bla", False),
|
||||||
|
(True, "Entity Blu", UNDEFINED, "Entity Blu", False),
|
||||||
|
(True, "Entity Blu", None, "Mock Title Entity Blu", False),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
async def test_friendly_name_attr(
|
async def test_friendly_name_attr(
|
||||||
|
@ -1002,6 +1010,7 @@ async def test_friendly_name_attr(
|
||||||
caplog: pytest.LogCaptureFixture,
|
caplog: pytest.LogCaptureFixture,
|
||||||
has_entity_name: bool,
|
has_entity_name: bool,
|
||||||
entity_name: str | None,
|
entity_name: str | None,
|
||||||
|
device_name: str | None | UndefinedType,
|
||||||
expected_friendly_name: str | None,
|
expected_friendly_name: str | None,
|
||||||
warn_implicit_name: bool,
|
warn_implicit_name: bool,
|
||||||
) -> None:
|
) -> None:
|
||||||
|
@ -1012,7 +1021,7 @@ async def test_friendly_name_attr(
|
||||||
device_info={
|
device_info={
|
||||||
"identifiers": {("hue", "1234")},
|
"identifiers": {("hue", "1234")},
|
||||||
"connections": {(dr.CONNECTION_NETWORK_MAC, "abcd")},
|
"connections": {(dr.CONNECTION_NETWORK_MAC, "abcd")},
|
||||||
"name": "Device Bla",
|
"name": device_name,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
ent._attr_has_entity_name = has_entity_name
|
ent._attr_has_entity_name = has_entity_name
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue