From 74d614243b5de47b3892425729f7331cff16c0c7 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Fri, 29 Mar 2024 07:43:19 +0100 Subject: [PATCH] Use `setup_test_component_platform` helper for date entity component tests instead of `hass.components` (#114413) * Use `setup_test_component_platform` helper for date entity component tests instead of `hass.components` * Remove missing --- tests/components/date/common.py | 20 ++++++++ tests/components/date/test_init.py | 27 ++++------ .../custom_components/test/date.py | 51 ------------------- 3 files changed, 30 insertions(+), 68 deletions(-) create mode 100644 tests/components/date/common.py delete mode 100644 tests/testing_config/custom_components/test/date.py diff --git a/tests/components/date/common.py b/tests/components/date/common.py new file mode 100644 index 00000000000..38641ba63fb --- /dev/null +++ b/tests/components/date/common.py @@ -0,0 +1,20 @@ +"""Common helpers for date entity component tests.""" + +from datetime import date + +from homeassistant.components.date import DateEntity + +from tests.common import MockEntity + + +class MockDateEntity(MockEntity, DateEntity): + """Mock date class.""" + + @property + def native_value(self): + """Return the native value of this date.""" + return self._handle("native_value") + + def set_value(self, value: date) -> None: + """Change the date.""" + self._values["native_value"] = value diff --git a/tests/components/date/test_init.py b/tests/components/date/test_init.py index f0a0094f8b8..a6c517c7b9e 100644 --- a/tests/components/date/test_init.py +++ b/tests/components/date/test_init.py @@ -2,7 +2,7 @@ from datetime import date -from homeassistant.components.date import DOMAIN, SERVICE_SET_VALUE, DateEntity +from homeassistant.components.date import DOMAIN, SERVICE_SET_VALUE from homeassistant.const import ( ATTR_DATE, ATTR_ENTITY_ID, @@ -12,25 +12,18 @@ from homeassistant.const import ( from homeassistant.core import HomeAssistant from homeassistant.setup import async_setup_component - -class MockDateEntity(DateEntity): - """Mock date device to use in tests.""" - - _attr_name = "date" - - def __init__(self, native_value=date(2020, 1, 1)) -> None: - """Initialize mock date entity.""" - self._attr_native_value = native_value - - async def async_set_value(self, value: date) -> None: - """Set the value of the date.""" - self._attr_native_value = value +from tests.common import setup_test_component_platform +from tests.components.date.common import MockDateEntity -async def test_date(hass: HomeAssistant, enable_custom_integrations: None) -> None: +async def test_date(hass: HomeAssistant) -> None: """Test date entity.""" - platform = getattr(hass.components, f"test.{DOMAIN}") - platform.init() + entity = MockDateEntity( + name="test", + unique_id="unique_date", + native_value=date(2020, 1, 1), + ) + setup_test_component_platform(hass, DOMAIN, [entity]) assert await async_setup_component(hass, DOMAIN, {DOMAIN: {CONF_PLATFORM: "test"}}) await hass.async_block_till_done() diff --git a/tests/testing_config/custom_components/test/date.py b/tests/testing_config/custom_components/test/date.py deleted file mode 100644 index 0a51bea029d..00000000000 --- a/tests/testing_config/custom_components/test/date.py +++ /dev/null @@ -1,51 +0,0 @@ -"""Provide a mock date platform. - -Call init before using it in your tests to ensure clean test data. -""" - -from datetime import date - -from homeassistant.components.date import DateEntity - -from tests.common import MockEntity - -UNIQUE_DATE = "unique_date" - -ENTITIES = [] - - -class MockDateEntity(MockEntity, DateEntity): - """Mock date class.""" - - @property - def native_value(self): - """Return the native value of this date.""" - return self._handle("native_value") - - def set_value(self, value: date) -> None: - """Change the date.""" - self._values["native_value"] = value - - -def init(empty=False): - """Initialize the platform with entities.""" - global ENTITIES - - ENTITIES = ( - [] - if empty - else [ - MockDateEntity( - name="test", - unique_id=UNIQUE_DATE, - native_value=date(2020, 1, 1), - ), - ] - ) - - -async def async_setup_platform( - hass, config, async_add_entities_callback, discovery_info=None -): - """Return mock entities.""" - async_add_entities_callback(ENTITIES)