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
This commit is contained in:
parent
61982acb17
commit
74d614243b
3 changed files with 30 additions and 68 deletions
20
tests/components/date/common.py
Normal file
20
tests/components/date/common.py
Normal file
|
@ -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
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
Loading…
Add table
Reference in a new issue