diff --git a/tests/components/motioneye/test_media_source.py b/tests/components/motioneye/test_media_source.py index 2cf31c21da7..541db872b51 100644 --- a/tests/components/motioneye/test_media_source.py +++ b/tests/components/motioneye/test_media_source.py @@ -5,10 +5,14 @@ from unittest.mock import AsyncMock, Mock, call from motioneye_client.client import MotionEyeClientPathError import pytest -from homeassistant.components import media_source -from homeassistant.components.media_source import const -from homeassistant.components.media_source.error import MediaSourceError, Unresolvable -from homeassistant.components.media_source.models import PlayMedia +from homeassistant.components.media_source import ( + URI_SCHEME, + MediaSourceError, + PlayMedia, + Unresolvable, + async_browse_media, + async_resolve_media, +) from homeassistant.components.motioneye.const import DOMAIN from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr @@ -86,9 +90,9 @@ async def test_async_browse_media_success(hass: HomeAssistant) -> None: identifiers={TEST_CAMERA_DEVICE_IDENTIFIER}, ) - media = await media_source.async_browse_media( + media = await async_browse_media( hass, - f"{const.URI_SCHEME}{DOMAIN}", + f"{URI_SCHEME}{DOMAIN}", ) assert media.as_dict() == { @@ -117,9 +121,7 @@ async def test_async_browse_media_success(hass: HomeAssistant) -> None: "not_shown": 0, } - media = await media_source.async_browse_media( - hass, f"{const.URI_SCHEME}{DOMAIN}/{config.entry_id}" - ) + media = await async_browse_media(hass, f"{URI_SCHEME}{DOMAIN}/{config.entry_id}") assert media.as_dict() == { "title": "http://test:8766", @@ -150,8 +152,8 @@ async def test_async_browse_media_success(hass: HomeAssistant) -> None: "not_shown": 0, } - media = await media_source.async_browse_media( - hass, f"{const.URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}" + media = await async_browse_media( + hass, f"{URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}" ) assert media.as_dict() == { "title": "http://test:8766 Test Camera", @@ -196,8 +198,8 @@ async def test_async_browse_media_success(hass: HomeAssistant) -> None: } client.async_get_movies = AsyncMock(return_value=TEST_MOVIES) - media = await media_source.async_browse_media( - hass, f"{const.URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#movies" + media = await async_browse_media( + hass, f"{URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#movies" ) assert media.as_dict() == { @@ -231,9 +233,9 @@ async def test_async_browse_media_success(hass: HomeAssistant) -> None: } client.get_movie_url = Mock(return_value="http://movie") - media = await media_source.async_browse_media( + media = await async_browse_media( hass, - f"{const.URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#movies#/2021-04-25", + f"{URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#movies#/2021-04-25", ) assert media.as_dict() == { "title": "http://test:8766 Test Camera Movies 2021-04-25", @@ -310,9 +312,9 @@ async def test_async_browse_media_images_success(hass: HomeAssistant) -> None: client.async_get_images = AsyncMock(return_value=TEST_IMAGES) client.get_image_url = Mock(return_value="http://image") - media = await media_source.async_browse_media( + media = await async_browse_media( hass, - f"{const.URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#images#/2021-04-12", + f"{URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#images#/2021-04-12", ) assert media.as_dict() == { "title": "http://test:8766 Test Camera Images 2021-04-12", @@ -361,10 +363,10 @@ async def test_async_resolve_media_success(hass: HomeAssistant) -> None: # Test successful resolve for a movie. client.get_movie_url = Mock(return_value="http://movie-url") - media = await media_source.async_resolve_media( + media = await async_resolve_media( hass, ( - f"{const.URI_SCHEME}{DOMAIN}" + f"{URI_SCHEME}{DOMAIN}" f"/{TEST_CONFIG_ENTRY_ID}#{device.id}#movies#/foo.mp4" ), None, @@ -374,10 +376,10 @@ async def test_async_resolve_media_success(hass: HomeAssistant) -> None: # Test successful resolve for an image. client.get_image_url = Mock(return_value="http://image-url") - media = await media_source.async_resolve_media( + media = await async_resolve_media( hass, ( - f"{const.URI_SCHEME}{DOMAIN}" + f"{URI_SCHEME}{DOMAIN}" f"/{TEST_CONFIG_ENTRY_ID}#{device.id}#images#/foo.jpg" ), None, @@ -411,28 +413,24 @@ async def test_async_resolve_media_failure(hass: HomeAssistant) -> None: # URI doesn't contain necessary components. with pytest.raises(Unresolvable): - await media_source.async_resolve_media( - hass, f"{const.URI_SCHEME}{DOMAIN}/foo", None - ) + await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/foo", None) # Config entry doesn't exist. with pytest.raises(MediaSourceError): - await media_source.async_resolve_media( - hass, f"{const.URI_SCHEME}{DOMAIN}/1#2#3#4", None - ) + await async_resolve_media(hass, f"{URI_SCHEME}{DOMAIN}/1#2#3#4", None) # Device doesn't exist. with pytest.raises(MediaSourceError): - await media_source.async_resolve_media( - hass, f"{const.URI_SCHEME}{DOMAIN}/{TEST_CONFIG_ENTRY_ID}#2#3#4", None + await async_resolve_media( + hass, f"{URI_SCHEME}{DOMAIN}/{TEST_CONFIG_ENTRY_ID}#2#3#4", None ) # Device identifiers are incorrect (no camera id) with pytest.raises(MediaSourceError): - await media_source.async_resolve_media( + await async_resolve_media( hass, ( - f"{const.URI_SCHEME}{DOMAIN}" + f"{URI_SCHEME}{DOMAIN}" f"/{TEST_CONFIG_ENTRY_ID}#{broken_device_1.id}#images#4" ), None, @@ -440,10 +438,10 @@ async def test_async_resolve_media_failure(hass: HomeAssistant) -> None: # Device identifiers are incorrect (non integer camera id) with pytest.raises(MediaSourceError): - await media_source.async_resolve_media( + await async_resolve_media( hass, ( - f"{const.URI_SCHEME}{DOMAIN}" + f"{URI_SCHEME}{DOMAIN}" f"/{TEST_CONFIG_ENTRY_ID}#{broken_device_2.id}#images#4" ), None, @@ -451,19 +449,19 @@ async def test_async_resolve_media_failure(hass: HomeAssistant) -> None: # Kind is incorrect. with pytest.raises(MediaSourceError): - await media_source.async_resolve_media( + await async_resolve_media( hass, - f"{const.URI_SCHEME}{DOMAIN}/{TEST_CONFIG_ENTRY_ID}#{device.id}#games#moo", + f"{URI_SCHEME}{DOMAIN}/{TEST_CONFIG_ENTRY_ID}#{device.id}#games#moo", None, ) # Playback URL raises exception. client.get_movie_url = Mock(side_effect=MotionEyeClientPathError) with pytest.raises(Unresolvable): - await media_source.async_resolve_media( + await async_resolve_media( hass, ( - f"{const.URI_SCHEME}{DOMAIN}" + f"{URI_SCHEME}{DOMAIN}" f"/{TEST_CONFIG_ENTRY_ID}#{device.id}#movies#/foo.mp4" ), None, @@ -472,10 +470,10 @@ async def test_async_resolve_media_failure(hass: HomeAssistant) -> None: # Media path does not start with '/' client.get_movie_url = Mock(side_effect=MotionEyeClientPathError) with pytest.raises(MediaSourceError): - await media_source.async_resolve_media( + await async_resolve_media( hass, ( - f"{const.URI_SCHEME}{DOMAIN}" + f"{URI_SCHEME}{DOMAIN}" f"/{TEST_CONFIG_ENTRY_ID}#{device.id}#movies#foo.mp4" ), None, @@ -484,9 +482,9 @@ async def test_async_resolve_media_failure(hass: HomeAssistant) -> None: # Media missing path. broken_movies = {"mediaList": [{}, {"path": "something", "mimeType": "NOT_A_MIME"}]} client.async_get_movies = AsyncMock(return_value=broken_movies) - media = await media_source.async_browse_media( + media = await async_browse_media( hass, - f"{const.URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#movies#/2021-04-25", + f"{URI_SCHEME}{DOMAIN}/{config.entry_id}#{device.id}#movies#/2021-04-25", ) assert media.as_dict() == { "title": "http://test:8766 Test Camera Movies 2021-04-25",