mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
parent
a0a509ceea
commit
3bbcf4d8b1
@ -6,30 +6,39 @@ https://home-assistant.io/components/weblink/
|
|||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
|
from homeassistant.const import (CONF_NAME, CONF_ICON, CONF_URL)
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
from homeassistant.util import slugify
|
from homeassistant.util import slugify
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
DOMAIN = "weblink"
|
|
||||||
DEPENDENCIES = []
|
|
||||||
|
|
||||||
ATTR_NAME = 'name'
|
|
||||||
ATTR_URL = 'url'
|
|
||||||
ATTR_ICON = 'icon'
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
CONF_ENTITIES = 'entities'
|
||||||
|
|
||||||
|
DOMAIN = 'weblink'
|
||||||
|
|
||||||
|
ENTITIES_SCHEMA = vol.Schema({
|
||||||
|
vol.Required(CONF_URL): cv.url,
|
||||||
|
vol.Required(CONF_NAME): cv.string,
|
||||||
|
vol.Optional(CONF_ICON): cv.icon,
|
||||||
|
})
|
||||||
|
|
||||||
|
CONFIG_SCHEMA = vol.Schema({
|
||||||
|
DOMAIN: vol.Schema({
|
||||||
|
vol.Required(CONF_ENTITIES): [ENTITIES_SCHEMA],
|
||||||
|
}),
|
||||||
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
|
|
||||||
def setup(hass, config):
|
def setup(hass, config):
|
||||||
"""Setup weblink component."""
|
"""Setup weblink component."""
|
||||||
links = config.get(DOMAIN)
|
links = config.get(DOMAIN)
|
||||||
|
|
||||||
for link in links.get('entities'):
|
for link in links.get(CONF_ENTITIES):
|
||||||
if ATTR_NAME not in link or ATTR_URL not in link:
|
Link(hass, link.get(CONF_NAME), link.get(CONF_URL),
|
||||||
_LOGGER.error("You need to set both %s and %s to add a %s",
|
link.get(CONF_URL))
|
||||||
ATTR_NAME, ATTR_URL, DOMAIN)
|
|
||||||
continue
|
|
||||||
Link(hass, link.get(ATTR_NAME), link.get(ATTR_URL),
|
|
||||||
link.get(ATTR_ICON))
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from homeassistant.components import weblink
|
from homeassistant.components import weblink
|
||||||
|
from homeassistant import bootstrap
|
||||||
|
|
||||||
from tests.common import get_test_home_assistant
|
from tests.common import get_test_home_assistant
|
||||||
|
|
||||||
@ -17,16 +18,23 @@ class TestComponentWeblink(unittest.TestCase):
|
|||||||
"""Stop everything that was started."""
|
"""Stop everything that was started."""
|
||||||
self.hass.stop()
|
self.hass.stop()
|
||||||
|
|
||||||
|
def test_bad_config(self):
|
||||||
|
"""Test if new entity is created."""
|
||||||
|
self.assertFalse(bootstrap.setup_component(self.hass, 'weblink', {
|
||||||
|
'weblink': {
|
||||||
|
'entities': [{}],
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
|
||||||
def test_entities_get_created(self):
|
def test_entities_get_created(self):
|
||||||
"""Test if new entity is created."""
|
"""Test if new entity is created."""
|
||||||
self.assertTrue(weblink.setup(self.hass, {
|
self.assertTrue(weblink.setup(self.hass, {
|
||||||
weblink.DOMAIN: {
|
weblink.DOMAIN: {
|
||||||
'entities': [
|
'entities': [
|
||||||
{
|
{
|
||||||
weblink.ATTR_NAME: 'My router',
|
weblink.CONF_NAME: 'My router',
|
||||||
weblink.ATTR_URL: 'http://127.0.0.1/'
|
weblink.CONF_URL: 'http://127.0.0.1/'
|
||||||
},
|
},
|
||||||
{}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user