diff --git a/homeassistant/components/persistent_notification/__init__.py b/homeassistant/components/persistent_notification/__init__.py index 88a61b52038..c247a326036 100644 --- a/homeassistant/components/persistent_notification/__init__.py +++ b/homeassistant/components/persistent_notification/__init__.py @@ -3,17 +3,15 @@ from __future__ import annotations from collections.abc import Mapping import logging -from typing import Any, cast +from typing import Any import voluptuous as vol from homeassistant.components import websocket_api from homeassistant.const import ATTR_FRIENDLY_NAME from homeassistant.core import Context, HomeAssistant, ServiceCall, callback -from homeassistant.exceptions import TemplateError from homeassistant.helpers import config_validation as cv from homeassistant.helpers.entity import async_generate_entity_id -from homeassistant.helpers.template import Template, is_template_string from homeassistant.helpers.typing import ConfigType from homeassistant.loader import bind_hass from homeassistant.util import slugify @@ -82,36 +80,11 @@ def async_create( ) notification_id = entity_id.split(".")[1] - warn = False - - attr: dict[str, str] = {} + attr: dict[str, str] = {ATTR_MESSAGE: message} if title is not None: - if is_template_string(title): - warn = True - try: - title = cast( - str, Template(title, hass).async_render(parse_result=False) # type: ignore[no-untyped-call] - ) - except TemplateError as ex: - _LOGGER.error("Error rendering title %s: %s", title, ex) - attr[ATTR_TITLE] = title attr[ATTR_FRIENDLY_NAME] = title - if is_template_string(message): - warn = True - try: - message = Template(message, hass).async_render(parse_result=False) # type: ignore[no-untyped-call] - except TemplateError as ex: - _LOGGER.error("Error rendering message %s: %s", message, ex) - - attr[ATTR_MESSAGE] = message - - if warn: - _LOGGER.warning( - "Passing a template string to persistent_notification.async_create function is deprecated" - ) - hass.states.async_set(entity_id, STATE, attr, context=context) # Store notification and fire event diff --git a/tests/components/persistent_notification/test_init.py b/tests/components/persistent_notification/test_init.py index a26e243df11..bca6fe3b93d 100644 --- a/tests/components/persistent_notification/test_init.py +++ b/tests/components/persistent_notification/test_init.py @@ -20,7 +20,7 @@ async def test_create(hass): assert len(hass.states.async_entity_ids(pn.DOMAIN)) == 0 assert len(notifications) == 0 - pn.async_create(hass, "Hello World {{ 1 + 1 }}", title="{{ 1 + 1 }} beers") + pn.async_create(hass, "Hello World 2", title="2 beers") entity_ids = hass.states.async_entity_ids(pn.DOMAIN) assert len(entity_ids) == 1 @@ -68,27 +68,6 @@ async def test_create_notification_id(hass): assert notification["message"] == "test 2" -async def test_create_template_error(hass): - """Ensure we output templates if contain error.""" - notifications = hass.data[pn.DOMAIN] - assert len(hass.states.async_entity_ids(pn.DOMAIN)) == 0 - assert len(notifications) == 0 - - pn.async_create(hass, "{{ message + 1 }}", "{{ title + 1 }}") - - entity_ids = hass.states.async_entity_ids(pn.DOMAIN) - assert len(entity_ids) == 1 - assert len(notifications) == 1 - - state = hass.states.get(entity_ids[0]) - assert state.attributes.get("message") == "{{ message + 1 }}" - assert state.attributes.get("title") == "{{ title + 1 }}" - - notification = notifications.get(entity_ids[0]) - assert notification["message"] == "{{ message + 1 }}" - assert notification["title"] == "{{ title + 1 }}" - - async def test_dismiss_notification(hass): """Ensure removal of specific notification.""" notifications = hass.data[pn.DOMAIN]