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
42998f898b
commit
d88275d6d2
3 changed files with 25 additions and 7 deletions
|
@ -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…
Add table
Reference in a new issue