Cleanup MediaClass and MediaType in tests (#78817)
Cleanup MediaClass/MediaType in tests
This commit is contained in:
parent
2a2cc79fc3
commit
41d2ac3943
20 changed files with 224 additions and 258 deletions
|
@ -5,12 +5,12 @@ from unittest.mock import ANY, PropertyMock, patch
|
|||
from arcam.fmj import DecodeMode2CH, DecodeModeMCH, SourceCodes
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_INPUT_SOURCE,
|
||||
ATTR_SOUND_MODE,
|
||||
ATTR_SOUND_MODE_LIST,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
SERVICE_SELECT_SOURCE,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID,
|
||||
|
@ -226,8 +226,8 @@ async def test_set_volume_level(player, state, volume, call):
|
|||
@pytest.mark.parametrize(
|
||||
"source, media_content_type",
|
||||
[
|
||||
(SourceCodes.DAB, MEDIA_TYPE_MUSIC),
|
||||
(SourceCodes.FM, MEDIA_TYPE_MUSIC),
|
||||
(SourceCodes.DAB, MediaType.MUSIC),
|
||||
(SourceCodes.FM, MediaType.MUSIC),
|
||||
(SourceCodes.PVR, None),
|
||||
(None, None),
|
||||
],
|
||||
|
|
|
@ -16,10 +16,7 @@ import yarl
|
|||
from homeassistant.components import media_player, tts
|
||||
from homeassistant.components.cast import media_player as cast
|
||||
from homeassistant.components.cast.media_player import ChromecastInfo
|
||||
from homeassistant.components.media_player import BrowseMedia
|
||||
from homeassistant.components.media_player.const import (
|
||||
MEDIA_CLASS_APP,
|
||||
MEDIA_CLASS_PLAYLIST,
|
||||
from homeassistant.components.media_player import (
|
||||
SUPPORT_NEXT_TRACK,
|
||||
SUPPORT_PAUSE,
|
||||
SUPPORT_PLAY,
|
||||
|
@ -31,6 +28,8 @@ from homeassistant.components.media_player.const import (
|
|||
SUPPORT_TURN_ON,
|
||||
SUPPORT_VOLUME_MUTE,
|
||||
SUPPORT_VOLUME_SET,
|
||||
BrowseMedia,
|
||||
MediaClass,
|
||||
)
|
||||
from homeassistant.config import async_process_ha_core_config
|
||||
from homeassistant.const import (
|
||||
|
@ -2110,7 +2109,7 @@ async def test_cast_platform_browse_media(hass: HomeAssistant, hass_ws_client):
|
|||
return_value=[
|
||||
BrowseMedia(
|
||||
title="Spotify",
|
||||
media_class=MEDIA_CLASS_APP,
|
||||
media_class=MediaClass.APP,
|
||||
media_content_id="",
|
||||
media_content_type="spotify",
|
||||
thumbnail="https://brands.home-assistant.io/_/spotify/logo.png",
|
||||
|
@ -2122,7 +2121,7 @@ async def test_cast_platform_browse_media(hass: HomeAssistant, hass_ws_client):
|
|||
async_browse_media=AsyncMock(
|
||||
return_value=BrowseMedia(
|
||||
title="Spotify Favourites",
|
||||
media_class=MEDIA_CLASS_PLAYLIST,
|
||||
media_class=MediaClass.PLAYLIST,
|
||||
media_content_id="",
|
||||
media_content_type="spotify",
|
||||
can_play=True,
|
||||
|
|
|
@ -12,8 +12,7 @@ from homeassistant.components.directv.media_player import (
|
|||
ATTR_MEDIA_RECORDED,
|
||||
ATTR_MEDIA_START_TIME,
|
||||
)
|
||||
from homeassistant.components.media_player import MediaPlayerDeviceClass
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_INPUT_SOURCE,
|
||||
ATTR_MEDIA_ALBUM_NAME,
|
||||
ATTR_MEDIA_ARTIST,
|
||||
|
@ -27,9 +26,6 @@ from homeassistant.components.media_player.const import (
|
|||
ATTR_MEDIA_SERIES_TITLE,
|
||||
ATTR_MEDIA_TITLE,
|
||||
DOMAIN as MP_DOMAIN,
|
||||
MEDIA_TYPE_MOVIE,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
MEDIA_TYPE_TVSHOW,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
SUPPORT_NEXT_TRACK,
|
||||
SUPPORT_PAUSE,
|
||||
|
@ -39,6 +35,8 @@ from homeassistant.components.media_player.const import (
|
|||
SUPPORT_STOP,
|
||||
SUPPORT_TURN_OFF,
|
||||
SUPPORT_TURN_ON,
|
||||
MediaPlayerDeviceClass,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID,
|
||||
|
@ -218,7 +216,7 @@ async def test_check_attributes(
|
|||
assert state.state == STATE_PLAYING
|
||||
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_ID) == "17016356"
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_MOVIE
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.MOVIE
|
||||
assert state.attributes.get(ATTR_MEDIA_DURATION) == 7200
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION) == 4437
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION_UPDATED_AT)
|
||||
|
@ -237,7 +235,7 @@ async def test_check_attributes(
|
|||
assert state.state == STATE_PLAYING
|
||||
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_ID) == "4405732"
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_TVSHOW
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.TVSHOW
|
||||
assert state.attributes.get(ATTR_MEDIA_DURATION) == 1791
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION) == 263
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION_UPDATED_AT)
|
||||
|
@ -256,7 +254,7 @@ async def test_check_attributes(
|
|||
assert state.state == STATE_PLAYING
|
||||
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_ID) == "76917562"
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_MUSIC
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.MUSIC
|
||||
assert state.attributes.get(ATTR_MEDIA_DURATION) == 86400
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION) == 15050
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION_UPDATED_AT)
|
||||
|
|
|
@ -19,23 +19,6 @@ from homeassistant.components.forked_daapd.const import (
|
|||
SUPPORTED_FEATURES_ZONE,
|
||||
)
|
||||
from homeassistant.components.media_player import (
|
||||
SERVICE_CLEAR_PLAYLIST,
|
||||
SERVICE_MEDIA_NEXT_TRACK,
|
||||
SERVICE_MEDIA_PAUSE,
|
||||
SERVICE_MEDIA_PLAY,
|
||||
SERVICE_MEDIA_PREVIOUS_TRACK,
|
||||
SERVICE_MEDIA_SEEK,
|
||||
SERVICE_MEDIA_STOP,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
SERVICE_SELECT_SOURCE,
|
||||
SERVICE_SHUFFLE_SET,
|
||||
SERVICE_TOGGLE,
|
||||
SERVICE_TURN_OFF,
|
||||
SERVICE_TURN_ON,
|
||||
SERVICE_VOLUME_MUTE,
|
||||
SERVICE_VOLUME_SET,
|
||||
)
|
||||
from homeassistant.components.media_player.const import (
|
||||
ATTR_INPUT_SOURCE,
|
||||
ATTR_MEDIA_ALBUM_ARTIST,
|
||||
ATTR_MEDIA_ALBUM_NAME,
|
||||
|
@ -51,8 +34,22 @@ from homeassistant.components.media_player.const import (
|
|||
ATTR_MEDIA_VOLUME_LEVEL,
|
||||
ATTR_MEDIA_VOLUME_MUTED,
|
||||
DOMAIN as MP_DOMAIN,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
MEDIA_TYPE_TVSHOW,
|
||||
SERVICE_CLEAR_PLAYLIST,
|
||||
SERVICE_MEDIA_NEXT_TRACK,
|
||||
SERVICE_MEDIA_PAUSE,
|
||||
SERVICE_MEDIA_PLAY,
|
||||
SERVICE_MEDIA_PREVIOUS_TRACK,
|
||||
SERVICE_MEDIA_SEEK,
|
||||
SERVICE_MEDIA_STOP,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
SERVICE_SELECT_SOURCE,
|
||||
SERVICE_SHUFFLE_SET,
|
||||
SERVICE_TOGGLE,
|
||||
SERVICE_TURN_OFF,
|
||||
SERVICE_TURN_ON,
|
||||
SERVICE_VOLUME_MUTE,
|
||||
SERVICE_VOLUME_SET,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.config_entries import SOURCE_USER
|
||||
from homeassistant.const import (
|
||||
|
@ -360,7 +357,7 @@ def test_master_state(hass, mock_api_object):
|
|||
assert not state.attributes[ATTR_MEDIA_VOLUME_MUTED]
|
||||
assert state.attributes[ATTR_MEDIA_VOLUME_LEVEL] == 0.2
|
||||
assert state.attributes[ATTR_MEDIA_CONTENT_ID] == 12322
|
||||
assert state.attributes[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert state.attributes[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert state.attributes[ATTR_MEDIA_DURATION] == 0.05
|
||||
assert state.attributes[ATTR_MEDIA_POSITION] == 0.005
|
||||
assert state.attributes[ATTR_MEDIA_TITLE] == "No album" # reversed for url
|
||||
|
@ -556,7 +553,7 @@ async def test_async_play_media_from_paused(hass, mock_api_object):
|
|||
TEST_MASTER_ENTITY_NAME,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: "http://example.com/somefile.mp3",
|
||||
},
|
||||
)
|
||||
|
@ -580,7 +577,7 @@ async def test_async_play_media_from_stopped(
|
|||
TEST_MASTER_ENTITY_NAME,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: "http://example.com/somefile.mp3",
|
||||
},
|
||||
)
|
||||
|
@ -597,7 +594,7 @@ async def test_async_play_media_unsupported(hass, mock_api_object):
|
|||
TEST_MASTER_ENTITY_NAME,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_TVSHOW,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.TVSHOW,
|
||||
ATTR_MEDIA_CONTENT_ID: "wontwork.mp4",
|
||||
},
|
||||
)
|
||||
|
@ -615,7 +612,7 @@ async def test_async_play_media_tts_timeout(hass, mock_api_object):
|
|||
TEST_MASTER_ENTITY_NAME,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: "http://example.com/somefile.mp3",
|
||||
},
|
||||
)
|
||||
|
@ -724,7 +721,7 @@ async def test_librespot_java_play_media(hass, pipe_control_api_object):
|
|||
TEST_MASTER_ENTITY_NAME,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: "http://example.com/somefile.mp3",
|
||||
},
|
||||
)
|
||||
|
@ -746,7 +743,7 @@ async def test_librespot_java_play_media_pause_timeout(hass, pipe_control_api_ob
|
|||
TEST_MASTER_ENTITY_NAME,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: "http://example.com/somefile.mp3",
|
||||
},
|
||||
)
|
||||
|
|
|
@ -29,10 +29,7 @@ from homeassistant.components import (
|
|||
)
|
||||
from homeassistant.components.google_assistant import const, error, helpers, trait
|
||||
from homeassistant.components.google_assistant.error import SmartHomeError
|
||||
from homeassistant.components.media_player.const import (
|
||||
MEDIA_TYPE_CHANNEL,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
)
|
||||
from homeassistant.components.media_player import SERVICE_PLAY_MEDIA, MediaType
|
||||
from homeassistant.config import async_process_ha_core_config
|
||||
from homeassistant.const import (
|
||||
ATTR_ASSUMED_STATE,
|
||||
|
@ -3169,7 +3166,7 @@ async def test_channel(hass):
|
|||
assert media_player_calls[0].data == {
|
||||
ATTR_ENTITY_ID: "media_player.demo",
|
||||
media_player.ATTR_MEDIA_CONTENT_ID: "1",
|
||||
media_player.ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_CHANNEL,
|
||||
media_player.ATTR_MEDIA_CONTENT_TYPE: MediaType.CHANNEL,
|
||||
}
|
||||
|
||||
with pytest.raises(SmartHomeError, match="Channel is not available"):
|
||||
|
|
|
@ -10,7 +10,7 @@ from homeassistant.components.heos.const import (
|
|||
DOMAIN,
|
||||
SIGNAL_HEOS_UPDATED,
|
||||
)
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_GROUP_MEMBERS,
|
||||
ATTR_INPUT_SOURCE,
|
||||
ATTR_INPUT_SOURCE_LIST,
|
||||
|
@ -27,9 +27,6 @@ from homeassistant.components.media_player.const import (
|
|||
ATTR_MEDIA_VOLUME_LEVEL,
|
||||
ATTR_MEDIA_VOLUME_MUTED,
|
||||
DOMAIN as MEDIA_PLAYER_DOMAIN,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
MEDIA_TYPE_PLAYLIST,
|
||||
MEDIA_TYPE_URL,
|
||||
SERVICE_CLEAR_PLAYLIST,
|
||||
SERVICE_JOIN,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
|
@ -40,6 +37,7 @@ from homeassistant.components.media_player.const import (
|
|||
SUPPORT_PLAY,
|
||||
SUPPORT_PREVIOUS_TRACK,
|
||||
SUPPORT_STOP,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_ID,
|
||||
|
@ -77,7 +75,7 @@ async def test_state_attributes(hass, config_entry, config, controller):
|
|||
assert state.attributes[ATTR_MEDIA_VOLUME_LEVEL] == 0.25
|
||||
assert not state.attributes[ATTR_MEDIA_VOLUME_MUTED]
|
||||
assert state.attributes[ATTR_MEDIA_CONTENT_ID] == "1"
|
||||
assert state.attributes[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert state.attributes[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert ATTR_MEDIA_DURATION not in state.attributes
|
||||
assert ATTR_MEDIA_POSITION not in state.attributes
|
||||
assert state.attributes[ATTR_MEDIA_TITLE] == "Song"
|
||||
|
@ -611,7 +609,7 @@ async def test_play_media_url(hass, config_entry, config, controller, caplog):
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: "media_player.test_player",
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_URL,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.URL,
|
||||
ATTR_MEDIA_CONTENT_ID: url,
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -634,7 +632,7 @@ async def test_play_media_music(hass, config_entry, config, controller, caplog):
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: "media_player.test_player",
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: url,
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -708,7 +706,7 @@ async def test_play_media_playlist(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: "media_player.test_player",
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_ID: playlist.name,
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -723,7 +721,7 @@ async def test_play_media_playlist(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: "media_player.test_player",
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_ID: playlist.name,
|
||||
ATTR_MEDIA_ENQUEUE: True,
|
||||
},
|
||||
|
@ -737,7 +735,7 @@ async def test_play_media_playlist(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: "media_player.test_player",
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_ID: "Invalid",
|
||||
},
|
||||
blocking=True,
|
||||
|
|
|
@ -6,8 +6,12 @@ from unittest.mock import patch
|
|||
import pytest
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.components import media_player
|
||||
from homeassistant.components.media_player.browse_media import BrowseMedia
|
||||
from homeassistant.components.media_player import (
|
||||
BrowseMedia,
|
||||
MediaClass,
|
||||
MediaPlayerEnqueue,
|
||||
MediaPlayerEntityFeature,
|
||||
)
|
||||
from homeassistant.components.websocket_api.const import TYPE_RESULT
|
||||
from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
@ -133,11 +137,11 @@ async def test_media_browse(hass, hass_ws_client):
|
|||
|
||||
with patch(
|
||||
"homeassistant.components.demo.media_player.YOUTUBE_PLAYER_SUPPORT",
|
||||
media_player.MediaPlayerEntityFeature.BROWSE_MEDIA,
|
||||
MediaPlayerEntityFeature.BROWSE_MEDIA,
|
||||
), patch(
|
||||
"homeassistant.components.media_player.MediaPlayerEntity.async_browse_media",
|
||||
return_value=BrowseMedia(
|
||||
media_class=media_player.MEDIA_CLASS_DIRECTORY,
|
||||
media_class=MediaClass.DIRECTORY,
|
||||
media_content_id="mock-id",
|
||||
media_content_type="mock-type",
|
||||
title="Mock Title",
|
||||
|
@ -176,7 +180,7 @@ async def test_media_browse(hass, hass_ws_client):
|
|||
|
||||
with patch(
|
||||
"homeassistant.components.demo.media_player.YOUTUBE_PLAYER_SUPPORT",
|
||||
media_player.MediaPlayerEntityFeature.BROWSE_MEDIA,
|
||||
MediaPlayerEntityFeature.BROWSE_MEDIA,
|
||||
), patch(
|
||||
"homeassistant.components.media_player.MediaPlayerEntity.async_browse_media",
|
||||
return_value={"bla": "yo"},
|
||||
|
@ -207,8 +211,7 @@ async def test_group_members_available_when_off(hass):
|
|||
# Fake group support for DemoYoutubePlayer
|
||||
with patch(
|
||||
"homeassistant.components.demo.media_player.YOUTUBE_PLAYER_SUPPORT",
|
||||
media_player.MediaPlayerEntityFeature.GROUPING
|
||||
| media_player.MediaPlayerEntityFeature.TURN_OFF,
|
||||
MediaPlayerEntityFeature.GROUPING | MediaPlayerEntityFeature.TURN_OFF,
|
||||
):
|
||||
await hass.services.async_call(
|
||||
"media_player",
|
||||
|
@ -225,12 +228,12 @@ async def test_group_members_available_when_off(hass):
|
|||
@pytest.mark.parametrize(
|
||||
"input,expected",
|
||||
(
|
||||
(True, media_player.MediaPlayerEnqueue.ADD),
|
||||
(False, media_player.MediaPlayerEnqueue.PLAY),
|
||||
("play", media_player.MediaPlayerEnqueue.PLAY),
|
||||
("next", media_player.MediaPlayerEnqueue.NEXT),
|
||||
("add", media_player.MediaPlayerEnqueue.ADD),
|
||||
("replace", media_player.MediaPlayerEnqueue.REPLACE),
|
||||
(True, MediaPlayerEnqueue.ADD),
|
||||
(False, MediaPlayerEnqueue.PLAY),
|
||||
("play", MediaPlayerEnqueue.PLAY),
|
||||
("next", MediaPlayerEnqueue.NEXT),
|
||||
("add", MediaPlayerEnqueue.ADD),
|
||||
("replace", MediaPlayerEnqueue.REPLACE),
|
||||
),
|
||||
)
|
||||
async def test_enqueue_rewrite(hass, input, expected):
|
||||
|
|
|
@ -5,7 +5,7 @@ import pytest
|
|||
import yarl
|
||||
|
||||
from homeassistant.components import media_source
|
||||
from homeassistant.components.media_player import MEDIA_CLASS_DIRECTORY, BrowseError
|
||||
from homeassistant.components.media_player import BrowseError, MediaClass
|
||||
from homeassistant.components.media_source import const, models
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
|
@ -160,7 +160,7 @@ async def test_websocket_browse_media(hass, hass_ws_client):
|
|||
domain=media_source.DOMAIN,
|
||||
identifier="/media",
|
||||
title="Local Media",
|
||||
media_class=MEDIA_CLASS_DIRECTORY,
|
||||
media_class=MediaClass.DIRECTORY,
|
||||
media_content_type="listing",
|
||||
can_play=False,
|
||||
can_expand=True,
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
"""Test Media Source model methods."""
|
||||
from homeassistant.components.media_player.const import (
|
||||
MEDIA_CLASS_DIRECTORY,
|
||||
MEDIA_CLASS_MUSIC,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
)
|
||||
from homeassistant.components.media_player import MediaClass, MediaType
|
||||
from homeassistant.components.media_source import const, models
|
||||
|
||||
|
||||
|
@ -12,19 +8,19 @@ async def test_browse_media_as_dict():
|
|||
base = models.BrowseMediaSource(
|
||||
domain=const.DOMAIN,
|
||||
identifier="media",
|
||||
media_class=MEDIA_CLASS_DIRECTORY,
|
||||
media_class=MediaClass.DIRECTORY,
|
||||
media_content_type="folder",
|
||||
title="media/",
|
||||
can_play=False,
|
||||
can_expand=True,
|
||||
children_media_class=MEDIA_CLASS_MUSIC,
|
||||
children_media_class=MediaClass.MUSIC,
|
||||
)
|
||||
base.children = [
|
||||
models.BrowseMediaSource(
|
||||
domain=const.DOMAIN,
|
||||
identifier="media/test.mp3",
|
||||
media_class=MEDIA_CLASS_MUSIC,
|
||||
media_content_type=MEDIA_TYPE_MUSIC,
|
||||
media_class=MediaClass.MUSIC,
|
||||
media_content_type=MediaType.MUSIC,
|
||||
title="test.mp3",
|
||||
can_play=True,
|
||||
can_expand=False,
|
||||
|
@ -33,15 +29,15 @@ async def test_browse_media_as_dict():
|
|||
|
||||
item = base.as_dict()
|
||||
assert item["title"] == "media/"
|
||||
assert item["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert item["media_class"] == MediaClass.DIRECTORY
|
||||
assert item["media_content_type"] == "folder"
|
||||
assert item["media_content_id"] == f"{const.URI_SCHEME}{const.DOMAIN}/media"
|
||||
assert not item["can_play"]
|
||||
assert item["can_expand"]
|
||||
assert item["children_media_class"] == MEDIA_CLASS_MUSIC
|
||||
assert item["children_media_class"] == MediaClass.MUSIC
|
||||
assert len(item["children"]) == 1
|
||||
assert item["children"][0]["title"] == "test.mp3"
|
||||
assert item["children"][0]["media_class"] == MEDIA_CLASS_MUSIC
|
||||
assert item["children"][0]["media_class"] == MediaClass.MUSIC
|
||||
|
||||
|
||||
async def test_browse_media_parent_no_children():
|
||||
|
@ -49,7 +45,7 @@ async def test_browse_media_parent_no_children():
|
|||
base = models.BrowseMediaSource(
|
||||
domain=const.DOMAIN,
|
||||
identifier="media",
|
||||
media_class=MEDIA_CLASS_DIRECTORY,
|
||||
media_class=MediaClass.DIRECTORY,
|
||||
media_content_type="folder",
|
||||
title="media/",
|
||||
can_play=False,
|
||||
|
@ -58,7 +54,7 @@ async def test_browse_media_parent_no_children():
|
|||
|
||||
item = base.as_dict()
|
||||
assert item["title"] == "media/"
|
||||
assert item["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert item["media_class"] == MediaClass.DIRECTORY
|
||||
assert item["media_content_type"] == "folder"
|
||||
assert item["media_content_id"] == f"{const.URI_SCHEME}{const.DOMAIN}/media"
|
||||
assert not item["can_play"]
|
||||
|
|
|
@ -4,16 +4,12 @@ from unittest.mock import patch
|
|||
from plexapi.exceptions import BadRequest, NotFound
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE,
|
||||
DOMAIN as MEDIA_PLAYER_DOMAIN,
|
||||
MEDIA_TYPE_EPISODE,
|
||||
MEDIA_TYPE_MOVIE,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
MEDIA_TYPE_PLAYLIST,
|
||||
MEDIA_TYPE_VIDEO,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.plex.const import DOMAIN
|
||||
from homeassistant.components.plex.errors import MediaNotFound
|
||||
|
@ -59,7 +55,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_EPISODE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.EPISODE,
|
||||
ATTR_MEDIA_CONTENT_ID: payload,
|
||||
},
|
||||
True,
|
||||
|
@ -72,7 +68,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_EPISODE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.EPISODE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "TV Shows", "show_name": "TV Show"}',
|
||||
},
|
||||
True,
|
||||
|
@ -84,7 +80,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_EPISODE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.EPISODE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "TV Shows", "episode_name": "An Episode"}',
|
||||
},
|
||||
True,
|
||||
|
@ -98,7 +94,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_EPISODE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.EPISODE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "TV Shows", "show_name": "TV Show", "season_number": 1}',
|
||||
},
|
||||
True,
|
||||
|
@ -112,7 +108,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_EPISODE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.EPISODE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "TV Shows", "show_name": "TV Show", "season_number": 1, "episode_number": 3}',
|
||||
},
|
||||
True,
|
||||
|
@ -131,7 +127,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Music", "artist_name": "Artist"}',
|
||||
},
|
||||
True,
|
||||
|
@ -143,7 +139,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Music", "album_name": "Album"}',
|
||||
},
|
||||
True,
|
||||
|
@ -155,7 +151,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Music", "artist_name": "Artist", "track_name": "Track 3"}',
|
||||
},
|
||||
True,
|
||||
|
@ -169,7 +165,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Music", "artist_name": "Artist", "album_name": "Album"}',
|
||||
},
|
||||
True,
|
||||
|
@ -183,7 +179,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Music", "artist_name": "Artist", "album_name": "Album", "track_number": 3}',
|
||||
},
|
||||
True,
|
||||
|
@ -202,7 +198,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Music", "artist_name": "Artist", "album_name": "Album", "track_name": "Track 3"}',
|
||||
},
|
||||
True,
|
||||
|
@ -222,7 +218,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_VIDEO,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.VIDEO,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Movies", "video_name": "Movie 1"}',
|
||||
},
|
||||
True,
|
||||
|
@ -234,7 +230,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Movies", "title": "Movie 1"}',
|
||||
},
|
||||
True,
|
||||
|
@ -248,7 +244,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_VIDEO,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.VIDEO,
|
||||
ATTR_MEDIA_CONTENT_ID: payload,
|
||||
},
|
||||
True,
|
||||
|
@ -263,7 +259,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_VIDEO,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.VIDEO,
|
||||
ATTR_MEDIA_CONTENT_ID: payload,
|
||||
},
|
||||
True,
|
||||
|
@ -276,7 +272,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"playlist_name": "Playlist 1"}',
|
||||
},
|
||||
True,
|
||||
|
@ -289,7 +285,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_ID: payload,
|
||||
},
|
||||
True,
|
||||
|
@ -303,7 +299,7 @@ async def test_media_lookups(hass, mock_plex_server, requests_mock, playqueue_cr
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player_id,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.PLAYLIST,
|
||||
ATTR_MEDIA_CONTENT_ID: payload,
|
||||
},
|
||||
True,
|
||||
|
|
|
@ -4,12 +4,12 @@ from unittest.mock import Mock, patch
|
|||
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE,
|
||||
DOMAIN as MP_DOMAIN,
|
||||
MEDIA_TYPE_MOVIE,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.plex.const import CONF_SERVER_IDENTIFIER, PLEX_URI_SCHEME
|
||||
from homeassistant.const import ATTR_ENTITY_ID
|
||||
|
@ -69,13 +69,13 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: payload,
|
||||
},
|
||||
True,
|
||||
)
|
||||
assert not playmedia_mock.called
|
||||
assert f"No {MEDIA_TYPE_MOVIE} results in 'Movies' for" in str(excinfo.value)
|
||||
assert f"No {MediaType.MOVIE} results in 'Movies' for" in str(excinfo.value)
|
||||
|
||||
movie1 = MockPlexMedia("Movie", "movie")
|
||||
movie2 = MockPlexMedia("Movie II", "movie")
|
||||
|
@ -89,7 +89,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Movies", "title": "Movie 1" }',
|
||||
},
|
||||
True,
|
||||
|
@ -104,7 +104,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Movies", "title": "Movie 1", "resume": true}',
|
||||
},
|
||||
True,
|
||||
|
@ -119,7 +119,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: PLEX_URI_SCHEME
|
||||
+ f"{DEFAULT_DATA[CONF_SERVER_IDENTIFIER]}/1",
|
||||
},
|
||||
|
@ -134,7 +134,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: PLEX_URI_SCHEME
|
||||
+ f"{DEFAULT_DATA[CONF_SERVER_IDENTIFIER]}/1?resume=1",
|
||||
},
|
||||
|
@ -150,7 +150,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: PLEX_URI_SCHEME + "1",
|
||||
},
|
||||
True,
|
||||
|
@ -166,7 +166,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Movies", "title": "Movie" }',
|
||||
},
|
||||
True,
|
||||
|
@ -184,7 +184,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: payload,
|
||||
},
|
||||
True,
|
||||
|
@ -202,7 +202,7 @@ async def test_media_player_playback(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MOVIE,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MOVIE,
|
||||
ATTR_MEDIA_CONTENT_ID: '{"library_name": "Movies", "title": "Movie", "allow_multiple": true }',
|
||||
},
|
||||
True,
|
||||
|
|
|
@ -7,7 +7,7 @@ from plexapi.exceptions import NotFound
|
|||
import plexapi.playqueue
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.media_player.const import MEDIA_TYPE_MUSIC
|
||||
from homeassistant.components.media_player import MediaType
|
||||
from homeassistant.components.plex.const import (
|
||||
CONF_SERVER,
|
||||
CONF_SERVER_IDENTIFIER,
|
||||
|
@ -140,7 +140,7 @@ async def test_lookup_media_for_other_integrations(
|
|||
|
||||
# Test with no Plex integration available
|
||||
with pytest.raises(HomeAssistantError) as excinfo:
|
||||
process_plex_payload(hass, MEDIA_TYPE_MUSIC, CONTENT_ID)
|
||||
process_plex_payload(hass, MediaType.MUSIC, CONTENT_ID)
|
||||
assert "Plex integration not configured" in str(excinfo.value)
|
||||
|
||||
with patch(
|
||||
|
@ -152,7 +152,7 @@ async def test_lookup_media_for_other_integrations(
|
|||
|
||||
# Test with no Plex servers available
|
||||
with pytest.raises(HomeAssistantError) as excinfo:
|
||||
process_plex_payload(hass, MEDIA_TYPE_MUSIC, CONTENT_ID)
|
||||
process_plex_payload(hass, MediaType.MUSIC, CONTENT_ID)
|
||||
assert "No Plex servers available" in str(excinfo.value)
|
||||
|
||||
# Complete setup of a Plex server
|
||||
|
@ -161,28 +161,28 @@ async def test_lookup_media_for_other_integrations(
|
|||
|
||||
# Test lookup success without playqueue
|
||||
result = process_plex_payload(
|
||||
hass, MEDIA_TYPE_MUSIC, CONTENT_ID, supports_playqueues=False
|
||||
hass, MediaType.MUSIC, CONTENT_ID, supports_playqueues=False
|
||||
)
|
||||
assert isinstance(result.media, plexapi.audio.Artist)
|
||||
assert not result.shuffle
|
||||
|
||||
# Test media key payload without playqueue
|
||||
result = process_plex_payload(
|
||||
hass, MEDIA_TYPE_MUSIC, CONTENT_ID_KEY, supports_playqueues=False
|
||||
hass, MediaType.MUSIC, CONTENT_ID_KEY, supports_playqueues=False
|
||||
)
|
||||
assert isinstance(result.media, plexapi.audio.Track)
|
||||
assert not result.shuffle
|
||||
|
||||
# Test with specified server without playqueue
|
||||
result = process_plex_payload(
|
||||
hass, MEDIA_TYPE_MUSIC, CONTENT_ID_SERVER, supports_playqueues=False
|
||||
hass, MediaType.MUSIC, CONTENT_ID_SERVER, supports_playqueues=False
|
||||
)
|
||||
assert isinstance(result.media, plexapi.audio.Artist)
|
||||
assert not result.shuffle
|
||||
|
||||
# Test shuffle without playqueue
|
||||
result = process_plex_payload(
|
||||
hass, MEDIA_TYPE_MUSIC, CONTENT_ID_SHUFFLE, supports_playqueues=False
|
||||
hass, MediaType.MUSIC, CONTENT_ID_SHUFFLE, supports_playqueues=False
|
||||
)
|
||||
assert isinstance(result.media, plexapi.audio.Artist)
|
||||
assert result.shuffle
|
||||
|
@ -190,12 +190,12 @@ async def test_lookup_media_for_other_integrations(
|
|||
# Test with media not found
|
||||
with patch("plexapi.library.LibrarySection.search", return_value=None):
|
||||
with pytest.raises(HomeAssistantError) as excinfo:
|
||||
process_plex_payload(hass, MEDIA_TYPE_MUSIC, CONTENT_ID_BAD_MEDIA)
|
||||
assert f"No {MEDIA_TYPE_MUSIC} results in 'Music' for" in str(excinfo.value)
|
||||
process_plex_payload(hass, MediaType.MUSIC, CONTENT_ID_BAD_MEDIA)
|
||||
assert f"No {MediaType.MUSIC} results in 'Music' for" in str(excinfo.value)
|
||||
|
||||
# Test with playqueue
|
||||
requests_mock.get("https://1.2.3.4:32400/playQueues/1234", text=playqueue_1234)
|
||||
result = process_plex_payload(hass, MEDIA_TYPE_MUSIC, CONTENT_ID_PLAYQUEUE)
|
||||
result = process_plex_payload(hass, MediaType.MUSIC, CONTENT_ID_PLAYQUEUE)
|
||||
assert isinstance(result.media, plexapi.playqueue.PlayQueue)
|
||||
|
||||
# Test with invalid playqueue
|
||||
|
@ -203,12 +203,12 @@ async def test_lookup_media_for_other_integrations(
|
|||
"https://1.2.3.4:32400/playQueues/1235", status_code=HTTPStatus.NOT_FOUND
|
||||
)
|
||||
with pytest.raises(HomeAssistantError) as excinfo:
|
||||
process_plex_payload(hass, MEDIA_TYPE_MUSIC, CONTENT_ID_BAD_PLAYQUEUE)
|
||||
process_plex_payload(hass, MediaType.MUSIC, CONTENT_ID_BAD_PLAYQUEUE)
|
||||
assert "PlayQueue '1235' could not be found" in str(excinfo.value)
|
||||
|
||||
# Test playqueue is created with shuffle
|
||||
requests_mock.post("/playqueues", text=playqueue_created)
|
||||
result = process_plex_payload(hass, MEDIA_TYPE_MUSIC, CONTENT_ID_SHUFFLE)
|
||||
result = process_plex_payload(hass, MediaType.MUSIC, CONTENT_ID_SHUFFLE)
|
||||
assert isinstance(result.media, plexapi.playqueue.PlayQueue)
|
||||
|
||||
|
||||
|
@ -218,7 +218,7 @@ async def test_lookup_media_with_urls(hass, mock_plex_server):
|
|||
|
||||
# Test URL format
|
||||
result = process_plex_payload(
|
||||
hass, MEDIA_TYPE_MUSIC, CONTENT_ID_URL, supports_playqueues=False
|
||||
hass, MediaType.MUSIC, CONTENT_ID_URL, supports_playqueues=False
|
||||
)
|
||||
assert isinstance(result.media, plexapi.audio.Track)
|
||||
assert result.shuffle is False
|
||||
|
@ -226,7 +226,7 @@ async def test_lookup_media_with_urls(hass, mock_plex_server):
|
|||
# Test URL format with shuffle
|
||||
CONTENT_ID_URL_WITH_SHUFFLE = CONTENT_ID_URL + "?shuffle=1"
|
||||
result = process_plex_payload(
|
||||
hass, MEDIA_TYPE_MUSIC, CONTENT_ID_URL_WITH_SHUFFLE, supports_playqueues=False
|
||||
hass, MediaType.MUSIC, CONTENT_ID_URL_WITH_SHUFFLE, supports_playqueues=False
|
||||
)
|
||||
assert isinstance(result.media, plexapi.audio.Track)
|
||||
assert result.shuffle is True
|
||||
|
|
|
@ -3,10 +3,10 @@ from unittest.mock import MagicMock, patch
|
|||
|
||||
from homeassistant import config_entries, data_entry_flow
|
||||
from homeassistant.components import ps4
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_MEDIA_CONTENT_TYPE,
|
||||
ATTR_MEDIA_TITLE,
|
||||
MEDIA_TYPE_GAME,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.ps4.const import (
|
||||
ATTR_MEDIA_IMAGE_URL,
|
||||
|
@ -86,20 +86,20 @@ MOCK_UNIQUE_ID = "someuniqueid"
|
|||
MOCK_ID = "CUSA00123"
|
||||
MOCK_URL = "http://someurl.jpeg"
|
||||
MOCK_TITLE = "Some Title"
|
||||
MOCK_TYPE = MEDIA_TYPE_GAME
|
||||
MOCK_TYPE = MediaType.GAME
|
||||
|
||||
MOCK_GAMES_DATA_OLD_STR_FORMAT = {"mock_id": "mock_title", "mock_id2": "mock_title2"}
|
||||
|
||||
MOCK_GAMES_DATA = {
|
||||
ATTR_LOCKED: False,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_GAME,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.GAME,
|
||||
ATTR_MEDIA_IMAGE_URL: MOCK_URL,
|
||||
ATTR_MEDIA_TITLE: MOCK_TITLE,
|
||||
}
|
||||
|
||||
MOCK_GAMES_DATA_LOCKED = {
|
||||
ATTR_LOCKED: True,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_GAME,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.GAME,
|
||||
ATTR_MEDIA_IMAGE_URL: MOCK_URL,
|
||||
ATTR_MEDIA_TITLE: MOCK_TITLE,
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ def test_games_reformat_to_dict(hass):
|
|||
assert mock_data
|
||||
assert mock_data[ATTR_MEDIA_IMAGE_URL] is None
|
||||
assert mock_data[ATTR_LOCKED] is False
|
||||
assert mock_data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_GAME
|
||||
assert mock_data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.GAME
|
||||
|
||||
|
||||
def test_load_games(hass):
|
||||
|
@ -234,7 +234,7 @@ def test_load_games(hass):
|
|||
assert mock_data[ATTR_MEDIA_TITLE] == MOCK_TITLE
|
||||
assert mock_data[ATTR_MEDIA_IMAGE_URL] == MOCK_URL
|
||||
assert mock_data[ATTR_LOCKED] is False
|
||||
assert mock_data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_GAME
|
||||
assert mock_data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.GAME
|
||||
|
||||
|
||||
def test_loading_games_returns_dict(hass):
|
||||
|
|
|
@ -6,14 +6,13 @@ from pyps4_2ndscreen.ddp import DEFAULT_UDP_PORT
|
|||
from pyps4_2ndscreen.media_art import TYPE_APP as PS_TYPE_APP
|
||||
|
||||
from homeassistant.components import ps4
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_INPUT_SOURCE,
|
||||
ATTR_INPUT_SOURCE_LIST,
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE,
|
||||
ATTR_MEDIA_TITLE,
|
||||
MEDIA_TYPE_APP,
|
||||
MEDIA_TYPE_GAME,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.ps4.const import (
|
||||
ATTR_MEDIA_IMAGE_URL,
|
||||
|
@ -60,19 +59,19 @@ MOCK_RANDOM_PORT = "1234"
|
|||
|
||||
MOCK_TITLE_ID = "CUSA00000"
|
||||
MOCK_TITLE_NAME = "Random Game"
|
||||
MOCK_TITLE_TYPE = MEDIA_TYPE_GAME
|
||||
MOCK_TITLE_TYPE = MediaType.GAME
|
||||
MOCK_TITLE_ART_URL = "https://somecoverurl"
|
||||
|
||||
MOCK_GAMES_DATA = {
|
||||
ATTR_LOCKED: False,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_GAME,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.GAME,
|
||||
ATTR_MEDIA_IMAGE_URL: MOCK_TITLE_ART_URL,
|
||||
ATTR_MEDIA_TITLE: MOCK_TITLE_NAME,
|
||||
}
|
||||
|
||||
MOCK_GAMES_DATA_LOCKED = {
|
||||
ATTR_LOCKED: True,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_GAME,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.GAME,
|
||||
ATTR_MEDIA_IMAGE_URL: MOCK_TITLE_ART_URL,
|
||||
ATTR_MEDIA_TITLE: MOCK_TITLE_NAME,
|
||||
}
|
||||
|
@ -258,7 +257,7 @@ async def test_media_attributes_are_fetched(hass):
|
|||
mock_attrs = dict(mock_state.attributes)
|
||||
|
||||
assert len(mock_fetch_app.mock_calls) == 1
|
||||
assert mock_attrs.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_APP
|
||||
assert mock_attrs.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.APP
|
||||
|
||||
|
||||
async def test_media_attributes_are_loaded(hass, patch_load_json):
|
||||
|
|
|
@ -5,8 +5,7 @@ from unittest.mock import MagicMock, patch
|
|||
import pytest
|
||||
from rokuecp import RokuConnectionError, RokuConnectionTimeoutError, RokuError
|
||||
|
||||
from homeassistant.components.media_player import MediaPlayerDeviceClass
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_APP_ID,
|
||||
ATTR_APP_NAME,
|
||||
ATTR_INPUT_SOURCE,
|
||||
|
@ -19,17 +18,6 @@ from homeassistant.components.media_player.const import (
|
|||
ATTR_MEDIA_TITLE,
|
||||
ATTR_MEDIA_VOLUME_MUTED,
|
||||
DOMAIN as MP_DOMAIN,
|
||||
MEDIA_CLASS_APP,
|
||||
MEDIA_CLASS_CHANNEL,
|
||||
MEDIA_CLASS_DIRECTORY,
|
||||
MEDIA_CLASS_VIDEO,
|
||||
MEDIA_TYPE_APP,
|
||||
MEDIA_TYPE_APPS,
|
||||
MEDIA_TYPE_CHANNEL,
|
||||
MEDIA_TYPE_CHANNELS,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
MEDIA_TYPE_URL,
|
||||
MEDIA_TYPE_VIDEO,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
SERVICE_SELECT_SOURCE,
|
||||
SUPPORT_BROWSE_MEDIA,
|
||||
|
@ -43,6 +31,9 @@ from homeassistant.components.media_player.const import (
|
|||
SUPPORT_TURN_ON,
|
||||
SUPPORT_VOLUME_MUTE,
|
||||
SUPPORT_VOLUME_STEP,
|
||||
MediaClass,
|
||||
MediaPlayerDeviceClass,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.roku.const import (
|
||||
ATTR_CONTENT_ID,
|
||||
|
@ -271,7 +262,7 @@ async def test_attributes_app(
|
|||
assert state
|
||||
assert state.state == STATE_ON
|
||||
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_APP
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.APP
|
||||
assert state.attributes.get(ATTR_APP_ID) == "12"
|
||||
assert state.attributes.get(ATTR_APP_NAME) == "Netflix"
|
||||
assert state.attributes.get(ATTR_INPUT_SOURCE) == "Netflix"
|
||||
|
@ -290,7 +281,7 @@ async def test_attributes_app_media_playing(
|
|||
assert state
|
||||
assert state.state == STATE_PLAYING
|
||||
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_APP
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.APP
|
||||
assert state.attributes.get(ATTR_MEDIA_DURATION) == 6496
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION) == 38
|
||||
assert state.attributes.get(ATTR_APP_ID) == "74519"
|
||||
|
@ -309,7 +300,7 @@ async def test_attributes_app_media_paused(
|
|||
assert state
|
||||
assert state.state == STATE_PAUSED
|
||||
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_APP
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.APP
|
||||
assert state.attributes.get(ATTR_MEDIA_DURATION) == 6496
|
||||
assert state.attributes.get(ATTR_MEDIA_POSITION) == 313
|
||||
assert state.attributes.get(ATTR_APP_ID) == "74519"
|
||||
|
@ -346,7 +337,7 @@ async def test_tv_attributes(
|
|||
assert state.attributes.get(ATTR_APP_ID) == "tvinput.dtv"
|
||||
assert state.attributes.get(ATTR_APP_NAME) == "Antenna TV"
|
||||
assert state.attributes.get(ATTR_INPUT_SOURCE) == "Antenna TV"
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MEDIA_TYPE_CHANNEL
|
||||
assert state.attributes.get(ATTR_MEDIA_CONTENT_TYPE) == MediaType.CHANNEL
|
||||
assert state.attributes.get(ATTR_MEDIA_CHANNEL) == "getTV (14.3)"
|
||||
assert state.attributes.get(ATTR_MEDIA_TITLE) == "Airwolf"
|
||||
|
||||
|
@ -436,7 +427,7 @@ async def test_services(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: MAIN_ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_APP,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.APP,
|
||||
ATTR_MEDIA_CONTENT_ID: "11",
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -450,7 +441,7 @@ async def test_services(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: MAIN_ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_APP,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.APP,
|
||||
ATTR_MEDIA_CONTENT_ID: "291097",
|
||||
ATTR_MEDIA_EXTRA: {
|
||||
ATTR_MEDIA_TYPE: "movie",
|
||||
|
@ -517,7 +508,7 @@ async def test_services_play_media(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: MAIN_ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: "https://localhost/media.m4a",
|
||||
ATTR_MEDIA_EXTRA: {ATTR_FORMAT: "blah"},
|
||||
},
|
||||
|
@ -530,11 +521,11 @@ async def test_services_play_media(
|
|||
@pytest.mark.parametrize(
|
||||
"content_type, content_id, resolved_name, resolved_format",
|
||||
[
|
||||
(MEDIA_TYPE_URL, "http://localhost/media.m4a", "media.m4a", "m4a"),
|
||||
(MEDIA_TYPE_MUSIC, "http://localhost/media.m4a", "media.m4a", "m4a"),
|
||||
(MEDIA_TYPE_MUSIC, "http://localhost/media.mka", "media.mka", "mka"),
|
||||
(MediaType.URL, "http://localhost/media.m4a", "media.m4a", "m4a"),
|
||||
(MediaType.MUSIC, "http://localhost/media.m4a", "media.m4a", "m4a"),
|
||||
(MediaType.MUSIC, "http://localhost/media.mka", "media.mka", "mka"),
|
||||
(
|
||||
MEDIA_TYPE_MUSIC,
|
||||
MediaType.MUSIC,
|
||||
"http://localhost/api/tts_proxy/generated.mp3",
|
||||
"Text to Speech",
|
||||
"mp3",
|
||||
|
@ -575,15 +566,15 @@ async def test_services_play_media_audio(
|
|||
@pytest.mark.parametrize(
|
||||
"content_type, content_id, resolved_name, resolved_format",
|
||||
[
|
||||
(MEDIA_TYPE_URL, "http://localhost/media.mp4", "media.mp4", "mp4"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.m4v", "media.m4v", "mp4"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.mov", "media.mov", "mp4"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.mkv", "media.mkv", "mkv"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.mks", "media.mks", "mks"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.m3u8", "media.m3u8", "hls"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.dash", "media.dash", "dash"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.mpd", "media.mpd", "dash"),
|
||||
(MEDIA_TYPE_VIDEO, "http://localhost/media.ism/manifest", "media.ism", "ism"),
|
||||
(MediaType.URL, "http://localhost/media.mp4", "media.mp4", "mp4"),
|
||||
(MediaType.VIDEO, "http://localhost/media.m4v", "media.m4v", "mp4"),
|
||||
(MediaType.VIDEO, "http://localhost/media.mov", "media.mov", "mp4"),
|
||||
(MediaType.VIDEO, "http://localhost/media.mkv", "media.mkv", "mkv"),
|
||||
(MediaType.VIDEO, "http://localhost/media.mks", "media.mks", "mks"),
|
||||
(MediaType.VIDEO, "http://localhost/media.m3u8", "media.m3u8", "hls"),
|
||||
(MediaType.VIDEO, "http://localhost/media.dash", "media.dash", "dash"),
|
||||
(MediaType.VIDEO, "http://localhost/media.mpd", "media.mpd", "dash"),
|
||||
(MediaType.VIDEO, "http://localhost/media.ism/manifest", "media.ism", "ism"),
|
||||
],
|
||||
)
|
||||
async def test_services_play_media_video(
|
||||
|
@ -717,7 +708,7 @@ async def test_tv_services(
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: TV_ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_ID: "55",
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -752,16 +743,16 @@ async def test_media_browse(
|
|||
|
||||
assert msg["result"]
|
||||
assert msg["result"]["title"] == "Apps"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MEDIA_TYPE_APPS
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_APP
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MediaType.APPS
|
||||
assert msg["result"]["children_media_class"] == MediaClass.APP
|
||||
assert msg["result"]["can_expand"]
|
||||
assert not msg["result"]["can_play"]
|
||||
assert len(msg["result"]["children"]) == 8
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_APP
|
||||
assert msg["result"]["children_media_class"] == MediaClass.APP
|
||||
|
||||
assert msg["result"]["children"][0]["title"] == "Roku Channel Store"
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MEDIA_TYPE_APP
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MediaType.APP
|
||||
assert msg["result"]["children"][0]["media_content_id"] == "11"
|
||||
assert (
|
||||
msg["result"]["children"][0]["thumbnail"]
|
||||
|
@ -811,7 +802,7 @@ async def test_media_browse_internal(
|
|||
"id": 1,
|
||||
"type": "media_player/browse_media",
|
||||
"entity_id": MAIN_ENTITY_ID,
|
||||
"media_content_type": MEDIA_TYPE_APPS,
|
||||
"media_content_type": MediaType.APPS,
|
||||
"media_content_id": "apps",
|
||||
}
|
||||
)
|
||||
|
@ -824,16 +815,16 @@ async def test_media_browse_internal(
|
|||
|
||||
assert msg["result"]
|
||||
assert msg["result"]["title"] == "Apps"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MEDIA_TYPE_APPS
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_APP
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MediaType.APPS
|
||||
assert msg["result"]["children_media_class"] == MediaClass.APP
|
||||
assert msg["result"]["can_expand"]
|
||||
assert not msg["result"]["can_play"]
|
||||
assert len(msg["result"]["children"]) == 8
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_APP
|
||||
assert msg["result"]["children_media_class"] == MediaClass.APP
|
||||
|
||||
assert msg["result"]["children"][0]["title"] == "Roku Channel Store"
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MEDIA_TYPE_APP
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MediaType.APP
|
||||
assert msg["result"]["children"][0]["media_content_id"] == "11"
|
||||
assert "/query/icon/11" in msg["result"]["children"][0]["thumbnail"]
|
||||
assert msg["result"]["children"][0]["can_play"]
|
||||
|
@ -873,17 +864,17 @@ async def test_media_browse_local_source(
|
|||
|
||||
assert msg["result"]
|
||||
assert msg["result"]["title"] == "Roku"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == "root"
|
||||
assert msg["result"]["can_expand"]
|
||||
assert not msg["result"]["can_play"]
|
||||
assert len(msg["result"]["children"]) == 2
|
||||
|
||||
assert msg["result"]["children"][0]["title"] == "Apps"
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MEDIA_TYPE_APPS
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MediaType.APPS
|
||||
|
||||
assert msg["result"]["children"][1]["title"] == "Local Media"
|
||||
assert msg["result"]["children"][1]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["children"][1]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["children"][1]["media_content_type"] is None
|
||||
assert (
|
||||
msg["result"]["children"][1]["media_content_id"]
|
||||
|
@ -911,7 +902,7 @@ async def test_media_browse_local_source(
|
|||
|
||||
assert msg["result"]
|
||||
assert msg["result"]["title"] == "Local Media"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] is None
|
||||
assert len(msg["result"]["children"]) == 2
|
||||
|
||||
|
@ -947,12 +938,12 @@ async def test_media_browse_local_source(
|
|||
assert msg["success"]
|
||||
|
||||
assert msg["result"]["title"] == "media"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == ""
|
||||
assert len(msg["result"]["children"]) == 2
|
||||
|
||||
assert msg["result"]["children"][0]["title"] == "Epic Sax Guy 10 Hours.mp4"
|
||||
assert msg["result"]["children"][0]["media_class"] == MEDIA_CLASS_VIDEO
|
||||
assert msg["result"]["children"][0]["media_class"] == MediaClass.VIDEO
|
||||
assert msg["result"]["children"][0]["media_content_type"] == "video/mp4"
|
||||
assert (
|
||||
msg["result"]["children"][0]["media_content_id"]
|
||||
|
@ -986,7 +977,7 @@ async def test_tv_media_browse(
|
|||
|
||||
assert msg["result"]
|
||||
assert msg["result"]["title"] == "Roku"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == "root"
|
||||
assert msg["result"]["can_expand"]
|
||||
assert not msg["result"]["can_play"]
|
||||
|
@ -998,7 +989,7 @@ async def test_tv_media_browse(
|
|||
"id": 2,
|
||||
"type": "media_player/browse_media",
|
||||
"entity_id": TV_ENTITY_ID,
|
||||
"media_content_type": MEDIA_TYPE_APPS,
|
||||
"media_content_type": MediaType.APPS,
|
||||
"media_content_id": "apps",
|
||||
}
|
||||
)
|
||||
|
@ -1011,16 +1002,16 @@ async def test_tv_media_browse(
|
|||
|
||||
assert msg["result"]
|
||||
assert msg["result"]["title"] == "Apps"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MEDIA_TYPE_APPS
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_APP
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MediaType.APPS
|
||||
assert msg["result"]["children_media_class"] == MediaClass.APP
|
||||
assert msg["result"]["can_expand"]
|
||||
assert not msg["result"]["can_play"]
|
||||
assert len(msg["result"]["children"]) == 11
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_APP
|
||||
assert msg["result"]["children_media_class"] == MediaClass.APP
|
||||
|
||||
assert msg["result"]["children"][0]["title"] == "Satellite TV"
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MEDIA_TYPE_APP
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MediaType.APP
|
||||
assert msg["result"]["children"][0]["media_content_id"] == "tvinput.hdmi2"
|
||||
assert (
|
||||
msg["result"]["children"][0]["thumbnail"]
|
||||
|
@ -1029,7 +1020,7 @@ async def test_tv_media_browse(
|
|||
assert msg["result"]["children"][0]["can_play"]
|
||||
|
||||
assert msg["result"]["children"][3]["title"] == "Roku Channel Store"
|
||||
assert msg["result"]["children"][3]["media_content_type"] == MEDIA_TYPE_APP
|
||||
assert msg["result"]["children"][3]["media_content_type"] == MediaType.APP
|
||||
assert msg["result"]["children"][3]["media_content_id"] == "11"
|
||||
assert (
|
||||
msg["result"]["children"][3]["thumbnail"]
|
||||
|
@ -1043,7 +1034,7 @@ async def test_tv_media_browse(
|
|||
"id": 3,
|
||||
"type": "media_player/browse_media",
|
||||
"entity_id": TV_ENTITY_ID,
|
||||
"media_content_type": MEDIA_TYPE_CHANNELS,
|
||||
"media_content_type": MediaType.CHANNELS,
|
||||
"media_content_id": "channels",
|
||||
}
|
||||
)
|
||||
|
@ -1056,16 +1047,16 @@ async def test_tv_media_browse(
|
|||
|
||||
assert msg["result"]
|
||||
assert msg["result"]["title"] == "TV Channels"
|
||||
assert msg["result"]["media_class"] == MEDIA_CLASS_DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MEDIA_TYPE_CHANNELS
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_CHANNEL
|
||||
assert msg["result"]["media_class"] == MediaClass.DIRECTORY
|
||||
assert msg["result"]["media_content_type"] == MediaType.CHANNELS
|
||||
assert msg["result"]["children_media_class"] == MediaClass.CHANNEL
|
||||
assert msg["result"]["can_expand"]
|
||||
assert not msg["result"]["can_play"]
|
||||
assert len(msg["result"]["children"]) == 4
|
||||
assert msg["result"]["children_media_class"] == MEDIA_CLASS_CHANNEL
|
||||
assert msg["result"]["children_media_class"] == MediaClass.CHANNEL
|
||||
|
||||
assert msg["result"]["children"][0]["title"] == "WhatsOn (1.1)"
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MEDIA_TYPE_CHANNEL
|
||||
assert msg["result"]["children"][0]["media_content_type"] == MediaType.CHANNEL
|
||||
assert msg["result"]["children"][0]["media_content_id"] == "1.1"
|
||||
assert msg["result"]["children"][0]["can_play"]
|
||||
|
||||
|
|
|
@ -23,20 +23,18 @@ from samsungtvws.exceptions import ConnectionFailure, HttpApiError, Unauthorized
|
|||
from samsungtvws.remote import ChannelEmitCommand, SendRemoteKey
|
||||
from websockets.exceptions import ConnectionClosedError, WebSocketException
|
||||
|
||||
from homeassistant.components.media_player import MediaPlayerDeviceClass
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_INPUT_SOURCE,
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE,
|
||||
ATTR_MEDIA_VOLUME_LEVEL,
|
||||
ATTR_MEDIA_VOLUME_MUTED,
|
||||
DOMAIN,
|
||||
MEDIA_TYPE_APP,
|
||||
MEDIA_TYPE_CHANNEL,
|
||||
MEDIA_TYPE_URL,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
SERVICE_SELECT_SOURCE,
|
||||
SUPPORT_TURN_ON,
|
||||
MediaPlayerDeviceClass,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.samsungtv.const import (
|
||||
CONF_ON_ACTION,
|
||||
|
@ -1120,7 +1118,7 @@ async def test_play_media(hass: HomeAssistant, remote: Mock) -> None:
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_ID: "576",
|
||||
},
|
||||
True,
|
||||
|
@ -1149,7 +1147,7 @@ async def test_play_media_invalid_type(hass: HomeAssistant) -> None:
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_URL,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.URL,
|
||||
ATTR_MEDIA_CONTENT_ID: url,
|
||||
},
|
||||
True,
|
||||
|
@ -1171,7 +1169,7 @@ async def test_play_media_channel_as_string(hass: HomeAssistant) -> None:
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_ID: url,
|
||||
},
|
||||
True,
|
||||
|
@ -1192,7 +1190,7 @@ async def test_play_media_channel_as_non_positive(hass: HomeAssistant) -> None:
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_ID: "-4",
|
||||
},
|
||||
True,
|
||||
|
@ -1247,7 +1245,7 @@ async def test_play_media_app(hass: HomeAssistant, remotews: Mock) -> None:
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_APP,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.APP,
|
||||
ATTR_MEDIA_CONTENT_ID: "3201608010191",
|
||||
},
|
||||
True,
|
||||
|
|
|
@ -4,12 +4,12 @@ from unittest.mock import Mock, patch
|
|||
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE,
|
||||
DOMAIN as MP_DOMAIN,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.plex import DOMAIN as PLEX_DOMAIN, PLEX_URI_SCHEME
|
||||
from homeassistant.const import ATTR_ENTITY_ID
|
||||
|
@ -38,7 +38,7 @@ async def test_plex_play_media(hass, async_autosetup_sonos):
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: f"{PLEX_URI_SCHEME}{media_content_id}",
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -47,7 +47,7 @@ async def test_plex_play_media(hass, async_autosetup_sonos):
|
|||
assert len(mock_lookup.mock_calls) == 1
|
||||
assert len(mock_add_to_queue.mock_calls) == 1
|
||||
assert not mock_shuffle.called
|
||||
assert mock_lookup.mock_calls[0][1][0] == MEDIA_TYPE_MUSIC
|
||||
assert mock_lookup.mock_calls[0][1][0] == MediaType.MUSIC
|
||||
assert mock_lookup.mock_calls[0][2] == json.loads(media_content_id)
|
||||
|
||||
# Test handling shuffle in payload
|
||||
|
@ -60,7 +60,7 @@ async def test_plex_play_media(hass, async_autosetup_sonos):
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: f"{PLEX_URI_SCHEME}{shuffle_media_content_id}",
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -69,7 +69,7 @@ async def test_plex_play_media(hass, async_autosetup_sonos):
|
|||
assert mock_shuffle.called
|
||||
assert len(mock_lookup.mock_calls) == 1
|
||||
assert len(mock_add_to_queue.mock_calls) == 1
|
||||
assert mock_lookup.mock_calls[0][1][0] == MEDIA_TYPE_MUSIC
|
||||
assert mock_lookup.mock_calls[0][1][0] == MediaType.MUSIC
|
||||
assert mock_lookup.mock_calls[0][2] == json.loads(media_content_id)
|
||||
|
||||
# Test failed Plex service call
|
||||
|
@ -83,7 +83,7 @@ async def test_plex_play_media(hass, async_autosetup_sonos):
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: f"{PLEX_URI_SCHEME}{media_content_id}",
|
||||
},
|
||||
blocking=True,
|
||||
|
@ -108,7 +108,7 @@ async def test_plex_play_media(hass, async_autosetup_sonos):
|
|||
SERVICE_PLAY_MEDIA,
|
||||
{
|
||||
ATTR_ENTITY_ID: media_player,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.MUSIC,
|
||||
ATTR_MEDIA_CONTENT_ID: f"{PLEX_URI_SCHEME}{server_id}/{plex_item_key}?shuffle=1",
|
||||
},
|
||||
blocking=True,
|
||||
|
|
|
@ -7,13 +7,13 @@ import voluptuous as vol
|
|||
|
||||
from homeassistant.components import media_source, tts
|
||||
from homeassistant.components.demo.tts import DemoProvider
|
||||
from homeassistant.components.media_player.const import (
|
||||
from homeassistant.components.media_player import (
|
||||
ATTR_MEDIA_ANNOUNCE,
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE,
|
||||
DOMAIN as DOMAIN_MP,
|
||||
MEDIA_TYPE_MUSIC,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.config import async_process_ha_core_config
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
|
@ -93,7 +93,7 @@ async def test_setup_component_and_test_service(hass, empty_cache_dir):
|
|||
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_ANNOUNCE] is True
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert (
|
||||
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
== "/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491_en_-_demo.mp3"
|
||||
|
@ -125,7 +125,7 @@ async def test_setup_component_and_test_service_with_config_language(
|
|||
blocking=True,
|
||||
)
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert (
|
||||
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
== "/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491_de_-_demo.mp3"
|
||||
|
@ -160,7 +160,7 @@ async def test_setup_component_and_test_service_with_config_language_special(
|
|||
blocking=True,
|
||||
)
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert (
|
||||
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
== "/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491_en-us_-_demo.mp3"
|
||||
|
@ -201,7 +201,7 @@ async def test_setup_component_and_test_service_with_service_language(
|
|||
blocking=True,
|
||||
)
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert (
|
||||
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
== "/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491_de_-_demo.mp3"
|
||||
|
@ -265,7 +265,7 @@ async def test_setup_component_and_test_service_with_service_options(
|
|||
opt_hash = tts._hash_options({"voice": "alex", "age": 5})
|
||||
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert (
|
||||
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
== f"/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491_de_{opt_hash}_demo.mp3"
|
||||
|
@ -302,7 +302,7 @@ async def test_setup_component_and_test_with_service_options_def(hass, empty_cac
|
|||
opt_hash = tts._hash_options({"voice": "alex"})
|
||||
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert (
|
||||
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
== f"/api/tts_proxy/42f18378fd4393d18c8dd11d03fa9563c1e54491_de_{opt_hash}_demo.mp3"
|
||||
|
@ -366,7 +366,7 @@ async def test_setup_component_and_test_service_with_base_url_set(hass):
|
|||
blocking=True,
|
||||
)
|
||||
assert len(calls) == 1
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_MUSIC
|
||||
assert calls[0].data[ATTR_MEDIA_CONTENT_TYPE] == MediaType.MUSIC
|
||||
assert (
|
||||
await get_media_source_url(hass, calls[0].data[ATTR_MEDIA_CONTENT_ID])
|
||||
== "http://fnord"
|
||||
|
|
|
@ -17,11 +17,7 @@ from pyunifiprotect.data import (
|
|||
)
|
||||
from pyunifiprotect.exceptions import NvrError
|
||||
|
||||
from homeassistant.components.media_player.const import (
|
||||
MEDIA_CLASS_IMAGE,
|
||||
MEDIA_CLASS_VIDEO,
|
||||
)
|
||||
from homeassistant.components.media_player.errors import BrowseError
|
||||
from homeassistant.components.media_player import BrowseError, MediaClass
|
||||
from homeassistant.components.media_source import MediaSourceItem
|
||||
from homeassistant.components.unifiprotect.const import DOMAIN
|
||||
from homeassistant.components.unifiprotect.media_source import (
|
||||
|
@ -679,7 +675,7 @@ async def test_browse_media_event(
|
|||
|
||||
assert browse.identifier == "test_id:event:test_event_id"
|
||||
assert browse.children is None
|
||||
assert browse.media_class == MEDIA_CLASS_VIDEO
|
||||
assert browse.media_class == MediaClass.VIDEO
|
||||
|
||||
|
||||
async def test_browse_media_eventthumb(
|
||||
|
@ -710,7 +706,7 @@ async def test_browse_media_eventthumb(
|
|||
|
||||
assert browse.identifier == "test_id:eventthumb:test_event_id"
|
||||
assert browse.children is None
|
||||
assert browse.media_class == MEDIA_CLASS_IMAGE
|
||||
assert browse.media_class == MediaClass.IMAGE
|
||||
|
||||
|
||||
@freeze_time("2022-09-15 03:00:00-07:00")
|
||||
|
|
|
@ -7,10 +7,6 @@ import pytest
|
|||
|
||||
from homeassistant.components import automation
|
||||
from homeassistant.components.media_player import (
|
||||
DOMAIN as MP_DOMAIN,
|
||||
MediaPlayerDeviceClass,
|
||||
)
|
||||
from homeassistant.components.media_player.const import (
|
||||
ATTR_INPUT_SOURCE,
|
||||
ATTR_INPUT_SOURCE_LIST,
|
||||
ATTR_MEDIA_CONTENT_ID,
|
||||
|
@ -18,11 +14,13 @@ from homeassistant.components.media_player.const import (
|
|||
ATTR_MEDIA_TITLE,
|
||||
ATTR_MEDIA_VOLUME_LEVEL,
|
||||
ATTR_MEDIA_VOLUME_MUTED,
|
||||
MEDIA_TYPE_CHANNEL,
|
||||
DOMAIN as MP_DOMAIN,
|
||||
SERVICE_PLAY_MEDIA,
|
||||
SERVICE_SELECT_SOURCE,
|
||||
SUPPORT_TURN_ON,
|
||||
SUPPORT_VOLUME_SET,
|
||||
MediaPlayerDeviceClass,
|
||||
MediaType,
|
||||
)
|
||||
from homeassistant.components.webostv.const import (
|
||||
ATTR_BUTTON,
|
||||
|
@ -304,7 +302,7 @@ async def test_entity_attributes(hass, client, monkeypatch):
|
|||
assert attrs[ATTR_MEDIA_VOLUME_LEVEL] == 0.37
|
||||
assert attrs[ATTR_INPUT_SOURCE] == "Live TV"
|
||||
assert attrs[ATTR_INPUT_SOURCE_LIST] == ["Input01", "Input02", "Live TV"]
|
||||
assert attrs[ATTR_MEDIA_CONTENT_TYPE] == MEDIA_TYPE_CHANNEL
|
||||
assert attrs[ATTR_MEDIA_CONTENT_TYPE] == MediaType.CHANNEL
|
||||
assert attrs[ATTR_MEDIA_TITLE] == "Channel 1"
|
||||
assert attrs[ATTR_SOUND_OUTPUT] == "speaker"
|
||||
|
||||
|
@ -373,7 +371,7 @@ async def test_play_media(hass, client, media_id, ch_id):
|
|||
|
||||
data = {
|
||||
ATTR_ENTITY_ID: ENTITY_ID,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_TYPE: MediaType.CHANNEL,
|
||||
ATTR_MEDIA_CONTENT_ID: media_id,
|
||||
}
|
||||
assert await hass.services.async_call(MP_DOMAIN, SERVICE_PLAY_MEDIA, data, True)
|
||||
|
|
Loading…
Add table
Reference in a new issue