mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Handle missing supported brands (#78090)
This commit is contained in:
parent
fe04af8798
commit
0e734e629c
@ -722,6 +722,9 @@ async def handle_supported_brands(
|
|||||||
for int_or_exc in ints_or_excs.values():
|
for int_or_exc in ints_or_excs.values():
|
||||||
if isinstance(int_or_exc, Exception):
|
if isinstance(int_or_exc, Exception):
|
||||||
raise int_or_exc
|
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"]
|
data[int_or_exc.domain] = int_or_exc.manifest["supported_brands"]
|
||||||
connection.send_result(msg["id"], data)
|
connection.send_result(msg["id"], data)
|
||||||
|
|
||||||
|
@ -1760,6 +1760,12 @@ async def test_validate_config_invalid(websocket_client, key, config, error):
|
|||||||
|
|
||||||
async def test_supported_brands(hass, websocket_client):
|
async def test_supported_brands(hass, websocket_client):
|
||||||
"""Test supported brands."""
|
"""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(
|
mock_integration(
|
||||||
hass,
|
hass,
|
||||||
MockModule("test", partial_manifest={"supported_brands": {"hello": "World"}}),
|
MockModule("test", partial_manifest={"supported_brands": {"hello": "World"}}),
|
||||||
@ -1773,7 +1779,7 @@ async def test_supported_brands(hass, websocket_client):
|
|||||||
|
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.generated.supported_brands.HAS_SUPPORTED_BRANDS",
|
"homeassistant.generated.supported_brands.HAS_SUPPORTED_BRANDS",
|
||||||
("abcd", "test"),
|
("abcd", "test", "override_without_brands"),
|
||||||
):
|
):
|
||||||
await websocket_client.send_json({"id": 7, "type": "supported_brands"})
|
await websocket_client.send_json({"id": 7, "type": "supported_brands"})
|
||||||
msg = await websocket_client.receive_json()
|
msg = await websocket_client.receive_json()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user