forked from home-assistant/core
Add test
This commit is contained in:
@@ -4,7 +4,10 @@ from typing import Any
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from homeassistant.components.sensor import SensorDeviceClass
|
||||||
|
from homeassistant.components.sensor.helpers import async_parse_date_datetime
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
|
CONF_DEVICE_CLASS,
|
||||||
CONF_ICON,
|
CONF_ICON,
|
||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
CONF_STATE,
|
CONF_STATE,
|
||||||
@@ -20,6 +23,7 @@ from homeassistant.helpers.trigger_template_entity import (
|
|||||||
CONF_AVAILABILITY,
|
CONF_AVAILABILITY,
|
||||||
CONF_PICTURE,
|
CONF_PICTURE,
|
||||||
ManualTriggerEntity,
|
ManualTriggerEntity,
|
||||||
|
ManualTriggerSensorEntity,
|
||||||
ValueTemplate,
|
ValueTemplate,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -288,3 +292,40 @@ async def test_trigger_template_complex(hass: HomeAssistant) -> None:
|
|||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
assert entity.some_other_key == {"test_key": "test_data"}
|
assert entity.some_other_key == {"test_key": "test_data"}
|
||||||
|
|
||||||
|
|
||||||
|
async def test_manual_trigger_sensor_entity_with_date(
|
||||||
|
hass: HomeAssistant, caplog: pytest.LogCaptureFixture
|
||||||
|
) -> None:
|
||||||
|
"""Test manual trigger template entity when availability template isn't used."""
|
||||||
|
config = {
|
||||||
|
CONF_NAME: template.Template("test_entity", hass),
|
||||||
|
CONF_STATE: template.Template("{{ as_datetime(value) }}", hass),
|
||||||
|
CONF_DEVICE_CLASS: SensorDeviceClass.TIMESTAMP,
|
||||||
|
}
|
||||||
|
|
||||||
|
class TestEntity(ManualTriggerSensorEntity):
|
||||||
|
"""Test entity class."""
|
||||||
|
|
||||||
|
extra_template_keys = (CONF_STATE,)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def state(self) -> bool | None:
|
||||||
|
"""Return extra attributes."""
|
||||||
|
return "2025-01-01T00:00:00+00:00"
|
||||||
|
|
||||||
|
entity = TestEntity(hass, config)
|
||||||
|
entity.entity_id = "test.entity"
|
||||||
|
variables = entity._template_variables_with_value("2025-01-01T00:00:00+00:00")
|
||||||
|
assert entity._render_availability_template(variables) is True
|
||||||
|
assert entity.available is True
|
||||||
|
entity._set_value_with_possible_timestamp(
|
||||||
|
entity.state, entity.device_class, variables
|
||||||
|
)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
assert entity.native_value == async_parse_date_datetime(
|
||||||
|
"2025-01-01T00:00:00+00:00", entity.entity_id, entity.device_class
|
||||||
|
)
|
||||||
|
assert entity.state == "2025-01-01T00:00:00+00:00"
|
||||||
|
assert entity.device_class == SensorDeviceClass.TIMESTAMP
|
||||||
|
Reference in New Issue
Block a user