68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
"""Tests for tibber notification service."""
|
|
|
|
from asyncio import TimeoutError
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from homeassistant.components.recorder import Recorder
|
|
from homeassistant.components.tibber import DOMAIN
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.exceptions import HomeAssistantError
|
|
|
|
|
|
async def test_notification_services(
|
|
recorder_mock: Recorder, hass: HomeAssistant, mock_tibber_setup: MagicMock
|
|
) -> None:
|
|
"""Test create entry from user input."""
|
|
# Assert notify entity has been added
|
|
notify_state = hass.states.get("notify.tibber")
|
|
assert notify_state is not None
|
|
|
|
# Assert legacy notify service hass been added
|
|
assert hass.services.has_service("notify", DOMAIN)
|
|
|
|
# Test legacy notify service
|
|
service = "tibber"
|
|
service_data = {"message": "The message", "title": "A title"}
|
|
await hass.services.async_call("notify", service, service_data, blocking=True)
|
|
calls: MagicMock = mock_tibber_setup.send_notification
|
|
|
|
calls.assert_called_once_with(message="The message", title="A title")
|
|
calls.reset_mock()
|
|
|
|
# Test notify entity service
|
|
service = "send_message"
|
|
service_data = {
|
|
"entity_id": "notify.tibber",
|
|
"message": "The message",
|
|
"title": "A title",
|
|
}
|
|
await hass.services.async_call("notify", service, service_data, blocking=True)
|
|
calls.assert_called_once_with("A title", "The message")
|
|
calls.reset_mock()
|
|
|
|
calls.side_effect = TimeoutError
|
|
|
|
with pytest.raises(HomeAssistantError):
|
|
# Test legacy notify service
|
|
await hass.services.async_call(
|
|
"notify",
|
|
service="tibber",
|
|
service_data={"message": "The message", "title": "A title"},
|
|
blocking=True,
|
|
)
|
|
|
|
with pytest.raises(HomeAssistantError):
|
|
# Test notify entity service
|
|
await hass.services.async_call(
|
|
"notify",
|
|
service="send_message",
|
|
service_data={
|
|
"entity_id": "notify.tibber",
|
|
"message": "The message",
|
|
"title": "A title",
|
|
},
|
|
blocking=True,
|
|
)
|