mirror of
https://github.com/home-assistant/core.git
synced 2025-04-19 14:57:52 +00:00
Make unknown media source exception translatable (#143208)
This commit is contained in:
parent
45022752a0
commit
221a8597da
@ -33,7 +33,7 @@ from .const import (
|
||||
URI_SCHEME,
|
||||
URI_SCHEME_REGEX,
|
||||
)
|
||||
from .error import MediaSourceError, Unresolvable
|
||||
from .error import MediaSourceError, UnknownMediaSource, Unresolvable
|
||||
from .models import BrowseMediaSource, MediaSource, MediaSourceItem, PlayMedia
|
||||
|
||||
__all__ = [
|
||||
@ -113,7 +113,11 @@ def _get_media_item(
|
||||
return MediaSourceItem(hass, domain, "", target_media_player)
|
||||
|
||||
if item.domain is not None and item.domain not in hass.data[DOMAIN]:
|
||||
raise ValueError("Unknown media source")
|
||||
raise UnknownMediaSource(
|
||||
translation_domain=DOMAIN,
|
||||
translation_key="unknown_media_source",
|
||||
translation_placeholders={"domain": item.domain},
|
||||
)
|
||||
|
||||
return item
|
||||
|
||||
@ -132,7 +136,14 @@ async def async_browse_media(
|
||||
try:
|
||||
item = await _get_media_item(hass, media_content_id, None).async_browse()
|
||||
except ValueError as err:
|
||||
raise BrowseError(str(err)) from err
|
||||
raise BrowseError(
|
||||
translation_domain=DOMAIN,
|
||||
translation_key="browse_media_failed",
|
||||
translation_placeholders={
|
||||
"media_content_id": str(media_content_id),
|
||||
"error": str(err),
|
||||
},
|
||||
) from err
|
||||
|
||||
if content_filter is None or item.children is None:
|
||||
return item
|
||||
@ -165,7 +176,14 @@ async def async_resolve_media(
|
||||
try:
|
||||
item = _get_media_item(hass, media_content_id, target_media_player)
|
||||
except ValueError as err:
|
||||
raise Unresolvable(str(err)) from err
|
||||
raise Unresolvable(
|
||||
translation_domain=DOMAIN,
|
||||
translation_key="resolve_media_failed",
|
||||
translation_placeholders={
|
||||
"media_content_id": str(media_content_id),
|
||||
"error": str(err),
|
||||
},
|
||||
) from err
|
||||
|
||||
return await item.async_resolve()
|
||||
|
||||
|
@ -9,3 +9,7 @@ class MediaSourceError(HomeAssistantError):
|
||||
|
||||
class Unresolvable(MediaSourceError):
|
||||
"""When media ID is not resolvable."""
|
||||
|
||||
|
||||
class UnknownMediaSource(MediaSourceError, ValueError):
|
||||
"""When media source is unknown."""
|
||||
|
13
homeassistant/components/media_source/strings.json
Normal file
13
homeassistant/components/media_source/strings.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"exceptions": {
|
||||
"browse_media_failed": {
|
||||
"message": "Failed to browse media with content id {media_content_id}: {error}"
|
||||
},
|
||||
"resolve_media_failed": {
|
||||
"message": "Failed to resolve media with content id {media_content_id}: {error}"
|
||||
},
|
||||
"unknown_media_source": {
|
||||
"message": "Unknown media source: {domain}"
|
||||
}
|
||||
}
|
||||
}
|
@ -57,8 +57,10 @@ async def test_async_browse_media(hass: HomeAssistant) -> None:
|
||||
# Test invalid base
|
||||
with pytest.raises(BrowseError) as excinfo:
|
||||
await async_browse_media(hass, f"{URI_SCHEME}{DOMAIN}/")
|
||||
assert str(excinfo.value) == "Invalid media source URI"
|
||||
|
||||
assert str(excinfo.value) == (
|
||||
"Failed to browse media with content id media-source://netatmo/: "
|
||||
"Invalid media source URI"
|
||||
)
|
||||
# Test successful listing
|
||||
media = await async_browse_media(hass, f"{URI_SCHEME}{DOMAIN}/events")
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user