Deprecate homeassistant.components.is_on function (#111891)

This commit is contained in:
Jan-Philipp Benecke 2024-03-13 17:21:00 +01:00 committed by GitHub
parent 7e0aac3feb
commit d4ae4a9cd0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 4 deletions

View File

@ -12,6 +12,7 @@ from __future__ import annotations
import logging
from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.helpers.frame import report
from homeassistant.helpers.group import expand_entity_ids
_LOGGER = logging.getLogger(__name__)
@ -22,6 +23,15 @@ def is_on(hass: HomeAssistant, entity_id: str | None = None) -> bool:
If there is no entity id given we will check all.
"""
report(
(
"uses homeassistant.components.is_on."
" This is deprecated and will stop working in Home Assistant 2024.9, it"
" should be updated to use the function of the platform directly."
),
error_if_core=True,
)
if entity_id:
entity_ids = expand_entity_ids(hass, [entity_id])
else:

View File

@ -136,10 +136,11 @@ class TestComponentsCore(unittest.TestCase):
def test_is_on(self):
"""Test is_on method."""
assert comps.is_on(self.hass, "light.Bowl")
assert not comps.is_on(self.hass, "light.Ceiling")
assert comps.is_on(self.hass)
assert not comps.is_on(self.hass, "non_existing.entity")
with pytest.raises(
RuntimeError,
match="Detected code that uses homeassistant.components.is_on. This is deprecated and will stop working",
):
assert comps.is_on(self.hass, "light.Bowl")
def test_turn_on_without_entities(self):
"""Test turn_on method without entities."""