Set hass when adding template attribute (#49094)
parent
eac1041277
commit
2d5edeb1ef
|
@ -211,6 +211,8 @@ class TemplateEntity(Entity):
|
|||
if the template or validator resulted in an error.
|
||||
|
||||
"""
|
||||
assert self.hass is not None, "hass cannot be None"
|
||||
template.hass = self.hass
|
||||
attribute = _TemplateAttribute(
|
||||
self, attribute, template, validator, on_update, none_on_template_error
|
||||
)
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
"""Test template entity."""
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.template import template_entity
|
||||
from homeassistant.helpers import template
|
||||
|
||||
|
||||
async def test_template_entity_requires_hass_set():
|
||||
"""Test template entity requires hass to be set before accepting templates."""
|
||||
entity = template_entity.TemplateEntity()
|
||||
|
||||
with pytest.raises(AssertionError):
|
||||
entity.add_template_attribute("_hello", template.Template("Hello"))
|
||||
|
||||
entity.hass = object()
|
||||
entity.add_template_attribute("_hello", template.Template("Hello", None))
|
||||
|
||||
tpl_with_hass = template.Template("Hello", entity.hass)
|
||||
entity.add_template_attribute("_hello", tpl_with_hass)
|
||||
|
||||
# Because hass is set in `add_template_attribute`, both templates match `tpl_with_hass`
|
||||
assert len(entity._template_attrs.get(tpl_with_hass, [])) == 2
|
Loading…
Reference in New Issue