Adjust root-import in motioneye tests (#78770)

This commit is contained in:
epenet 2022-09-19 15:42:19 +02:00 committed by GitHub
parent 7e41afe660
commit beca4bb7a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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",