feat(button,media_player): Pair ADB carries entity_category CONFIG (t30 G11) + BrowseMediaSource domain parameter at root and children (t30 G18, 2026-05-20 blog contract); stubs/tests pin both

This commit is contained in:
James Mackay committed 2026-10-09 07:17:14 +01:00
1 parent 7c12d96070
commit 194a97ce34
4 files changed
+15 -1

No files matched your search

+5
View File
@@ -78,6 +78,7 @@ class BrowseMediaSource:
media_content_id,
can_play,
can_expand,
domain=None, # t30 G18 (2026-05-20 blog contract)
children=None,
thumbnail=None,
):
@@ -87,6 +88,7 @@ class BrowseMediaSource:
self.media_content_id = media_content_id
self.can_play = can_play
self.can_expand = can_expand
self.domain = domain
self.children = children or []
self.thumbnail = thumbnail
@@ -287,6 +289,9 @@ def install() -> None:
)
entity = types.ModuleType("homeassistant.helpers.entity")
entity.DeviceInfo = dict
entity.EntityCategory = types.SimpleNamespace(
CONFIG="config", DIAGNOSTIC="diagnostic"
)
helpers.entity = entity
entity_platform = types.ModuleType("homeassistant.helpers.entity_platform")
entity_platform.AddEntitiesCallback = object
+4
View File
@@ -971,6 +971,10 @@ class TestBrowseMediaDirectory:
("com.netflix.ninja", "Netflix"),
]
assert all(c.media_content_type == "app" for c in root.children)
# t30 G18 (2026-05-20 blog): the domain parameter is present at
# every level of the tree
assert root.domain == "nvidia_shield"
assert all(c.domain == "nvidia_shield" for c in root.children)
async def test_root_falls_back_to_the_curated_default(self, modules):
player, _s, _i = make_player(modules) # no apps map configured