1
mirror of https://github.com/home-assistant/core synced 2024-09-09 12:51:22 +02:00

Handle missing supported brands (#78090)

This commit is contained in:
Paulus Schoutsen 2022-09-09 01:47:33 -04:00 committed by GitHub
parent fe04af8798
commit 0e734e629c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View File

@ -722,6 +722,9 @@ async def handle_supported_brands(
for int_or_exc in ints_or_excs.values():
if isinstance(int_or_exc, Exception):
raise int_or_exc
# Happens if a custom component without supported brands overrides a built-in one with supported brands
if "supported_brands" not in int_or_exc.manifest:
continue
data[int_or_exc.domain] = int_or_exc.manifest["supported_brands"]
connection.send_result(msg["id"], data)

View File

@ -1760,6 +1760,12 @@ async def test_validate_config_invalid(websocket_client, key, config, error):
async def test_supported_brands(hass, websocket_client):
"""Test supported brands."""
# Custom components without supported brands that override a built-in component with
# supported brand will still be listed in HAS_SUPPORTED_BRANDS and should be ignored.
mock_integration(
hass,
MockModule("override_without_brands"),
)
mock_integration(
hass,
MockModule("test", partial_manifest={"supported_brands": {"hello": "World"}}),
@ -1773,7 +1779,7 @@ async def test_supported_brands(hass, websocket_client):
with patch(
"homeassistant.generated.supported_brands.HAS_SUPPORTED_BRANDS",
("abcd", "test"),
("abcd", "test", "override_without_brands"),
):
await websocket_client.send_json({"id": 7, "type": "supported_brands"})
msg = await websocket_client.receive_json()