mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +00:00
Adjust root-import in motioneye tests (#78770)
This commit is contained in:
parent
7e41afe660
commit
beca4bb7a5
@ -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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user