Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions homeassistant/components/telegram/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
"""The telegram component."""

DOMAIN = "telegram"
PLATFORMS = ["notify"]
5 changes: 5 additions & 0 deletions homeassistant/components/telegram/notify.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
BaseNotificationService,
)
from homeassistant.const import ATTR_LOCATION
from homeassistant.helpers.reload import setup_reload_service

from . import DOMAIN as TELEGRAM_DOMAIN, PLATFORMS

_LOGGER = logging.getLogger(__name__)

Expand All @@ -29,6 +32,8 @@

def get_service(hass, config, discovery_info=None):
"""Get the Telegram notification service."""

setup_reload_service(hass, TELEGRAM_DOMAIN, PLATFORMS)
chat_id = config.get(CONF_CHAT_ID)
return TelegramNotificationService(hass, chat_id)

Expand Down
2 changes: 2 additions & 0 deletions homeassistant/components/telegram/services.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
reload:
description: Reload telegram notify services.
1 change: 1 addition & 0 deletions tests/components/telegram/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Tests for telegram component."""
53 changes: 53 additions & 0 deletions tests/components/telegram/test_notify.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
"""The tests for the telegram.notify platform."""
from os import path

from homeassistant import config as hass_config
import homeassistant.components.notify as notify
from homeassistant.components.telegram import DOMAIN
from homeassistant.const import SERVICE_RELOAD
from homeassistant.setup import async_setup_component

from tests.async_mock import patch


async def test_reload_notify(hass):
"""Verify we can reload the notify service."""

with patch("homeassistant.components.telegram_bot.async_setup", return_value=True):
assert await async_setup_component(
hass,
notify.DOMAIN,
{
notify.DOMAIN: [
{
"name": DOMAIN,
"platform": DOMAIN,
"chat_id": 1,
},
]
},
)
await hass.async_block_till_done()

assert hass.services.has_service(notify.DOMAIN, DOMAIN)

yaml_path = path.join(
_get_fixtures_base_path(),
"fixtures",
"telegram/configuration.yaml",
)
with patch.object(hass_config, "YAML_CONFIG_FILE", yaml_path):
await hass.services.async_call(
DOMAIN,
SERVICE_RELOAD,
{},
blocking=True,
)
await hass.async_block_till_done()

assert not hass.services.has_service(notify.DOMAIN, DOMAIN)
assert hass.services.has_service(notify.DOMAIN, "telegram_reloaded")


def _get_fixtures_base_path():
return path.dirname(path.dirname(path.dirname(__file__)))
4 changes: 4 additions & 0 deletions tests/fixtures/telegram/configuration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
notify:
- name: telegram_reloaded
platform: telegram
chat_id: 2