1
mirror of https://github.com/home-assistant/core synced 2024-09-06 10:29:55 +02:00

Make sure panel_custom won't crash on invalid data (#32835)

* Make sure panel_custom won't crash on invalid data

* Add a test
This commit is contained in:
Paulus Schoutsen 2020-03-15 11:51:02 -07:00 committed by GitHub
parent f4bf66aecd
commit 2889067ece
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 7 deletions

View File

@ -3,6 +3,7 @@
"name": "Hass.io",
"documentation": "https://www.home-assistant.io/hassio",
"requirements": [],
"dependencies": ["http", "panel_custom"],
"dependencies": ["http"],
"after_dependencies": ["panel_custom"],
"codeowners": ["@home-assistant/hass-io"]
}

View File

@ -146,8 +146,6 @@ async def async_setup(hass, config):
if DOMAIN not in config:
return True
success = False
for panel in config[DOMAIN]:
name = panel[CONF_COMPONENT_NAME]
@ -182,8 +180,13 @@ async def async_setup(hass, config):
hass.http.register_static_path(url, panel_path)
kwargs["html_url"] = url
await async_register_panel(hass, **kwargs)
try:
await async_register_panel(hass, **kwargs)
except ValueError as err:
_LOGGER.error(
"Unable to register panel %s: %s",
panel.get(CONF_SIDEBAR_TITLE, name),
err,
)
success = True
return success
return True

View File

@ -181,3 +181,17 @@ async def test_url_option_conflict(hass):
for config in to_try:
result = await setup.async_setup_component(hass, "panel_custom", config)
assert not result
async def test_url_path_conflict(hass):
"""Test config with overlapping url path."""
assert await setup.async_setup_component(
hass,
"panel_custom",
{
"panel_custom": [
{"name": "todo-mvc", "js_url": "/local/bla.js"},
{"name": "todo-mvc", "js_url": "/local/bla.js"},
]
},
)