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:
parent
f4bf66aecd
commit
2889067ece
@ -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"]
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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"},
|
||||
]
|
||||
},
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user