mirror of
https://github.com/home-assistant/core.git
synced 2025-07-31 19:25:12 +02:00
Add test
This commit is contained in:
@@ -4,7 +4,10 @@ from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.sensor import SensorDeviceClass
|
||||
from homeassistant.components.sensor.helpers import async_parse_date_datetime
|
||||
from homeassistant.const import (
|
||||
CONF_DEVICE_CLASS,
|
||||
CONF_ICON,
|
||||
CONF_NAME,
|
||||
CONF_STATE,
|
||||
@@ -20,6 +23,7 @@ from homeassistant.helpers.trigger_template_entity import (
|
||||
CONF_AVAILABILITY,
|
||||
CONF_PICTURE,
|
||||
ManualTriggerEntity,
|
||||
ManualTriggerSensorEntity,
|
||||
ValueTemplate,
|
||||
)
|
||||
|
||||
@@ -288,3 +292,40 @@ async def test_trigger_template_complex(hass: HomeAssistant) -> None:
|
||||
await hass.async_block_till_done()
|
||||
|
||||
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