Update reporting for media_source.async_resolve_media (#111969)

* Update reporting for media_source.async_resolve_media

* Don't raise on core

* Fix tests
pull/112516/head
Paulus Schoutsen 2024-03-01 16:18:58 -05:00
parent 005493bb5a
commit 435bb50d29
4 changed files with 26 additions and 17 deletions

View File

@ -148,7 +148,10 @@ async def async_resolve_media(
raise Unresolvable("Media Source not loaded")
if target_media_player is UNDEFINED:
report("calls media_source.async_resolve_media without passing an entity_id")
report(
"calls media_source.async_resolve_media without passing an entity_id",
{DOMAIN},
)
target_media_player = None
try:

View File

@ -40,7 +40,9 @@ async def test_resolve(
mock_api.get_item.side_effect = None
mock_api.get_item.return_value = load_json_fixture("track.json")
play_media = await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/TRACK-UUID")
play_media = await async_resolve_media(
hass, f"{URI_SCHEME}{DOMAIN}/TRACK-UUID", "media_player.jellyfin_device"
)
assert play_media.mime_type == "audio/flac"
assert play_media.url == snapshot
@ -49,7 +51,9 @@ async def test_resolve(
mock_api.get_item.side_effect = None
mock_api.get_item.return_value = load_json_fixture("movie.json")
play_media = await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/MOVIE-UUID")
play_media = await async_resolve_media(
hass, f"{URI_SCHEME}{DOMAIN}/MOVIE-UUID", "media_player.jellyfin_device"
)
assert play_media.mime_type == "video/mp4"
assert play_media.url == snapshot
@ -59,7 +63,11 @@ async def test_resolve(
mock_api.get_item.return_value = load_json_fixture("unsupported-item.json")
with pytest.raises(BrowseError):
await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/UNSUPPORTED-ITEM-UUID")
await async_resolve_media(
hass,
f"{URI_SCHEME}{DOMAIN}/UNSUPPORTED-ITEM-UUID",
"media_player.jellyfin_device",
)
async def test_root(

View File

@ -121,17 +121,13 @@ async def test_async_resolve_media_no_entity(
assert await async_setup_component(hass, media_source.DOMAIN, {})
await hass.async_block_till_done()
media = await media_source.async_resolve_media(
hass,
media_source.generate_media_source_id(media_source.DOMAIN, "local/test.mp3"),
)
assert isinstance(media, media_source.models.PlayMedia)
assert media.url == "/media/local/test.mp3"
assert media.mime_type == "audio/mpeg"
assert (
"calls media_source.async_resolve_media without passing an entity_id"
in caplog.text
)
with pytest.raises(RuntimeError):
await media_source.async_resolve_media(
hass,
media_source.generate_media_source_id(
media_source.DOMAIN, "local/test.mp3"
),
)
async def test_async_unresolve_media(hass: HomeAssistant) -> None:

View File

@ -81,7 +81,9 @@ async def test_resolve(
f"FILE|{config_entry.entry_id}|{TEST_CHANNEL}|{TEST_STREAM}|{TEST_FILE_NAME}"
)
play_media = await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/{file_id}")
play_media = await async_resolve_media(
hass, f"{URI_SCHEME}{DOMAIN}/{file_id}", None
)
assert play_media.mime_type == TEST_MIME_TYPE
@ -245,7 +247,7 @@ async def test_browsing_errors(
with pytest.raises(Unresolvable):
await async_browse_media(hass, f"{URI_SCHEME}{DOMAIN}/UNKNOWN")
with pytest.raises(Unresolvable):
await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/UNKNOWN")
await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/UNKNOWN", None)
async def test_browsing_not_loaded(