Set hass when adding template attribute (#49094)

pull/49119/head
Paulus Schoutsen 2021-04-11 22:49:09 -07:00 committed by GitHub
parent eac1041277
commit 2d5edeb1ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 0 deletions

View File

@ -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
)

View File

@ -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