Fix group media player play_media
not passing kwargs (#122258)
This commit is contained in:
parent
243a68fb1f
commit
186ca49b16
2 changed files with 62 additions and 2 deletions
|
@ -365,6 +365,8 @@ class MediaPlayerGroup(MediaPlayerEntity):
|
||||||
ATTR_MEDIA_CONTENT_ID: media_id,
|
ATTR_MEDIA_CONTENT_ID: media_id,
|
||||||
ATTR_MEDIA_CONTENT_TYPE: media_type,
|
ATTR_MEDIA_CONTENT_TYPE: media_type,
|
||||||
}
|
}
|
||||||
|
if kwargs:
|
||||||
|
data.update(kwargs)
|
||||||
await self.hass.services.async_call(
|
await self.hass.services.async_call(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
SERVICE_PLAY_MEDIA,
|
SERVICE_PLAY_MEDIA,
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
"""The tests for the Media group platform."""
|
"""The tests for the Media group platform."""
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
from unittest.mock import Mock, patch
|
from unittest.mock import MagicMock, Mock, patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant.components.group import DOMAIN
|
from homeassistant.components.group import DOMAIN
|
||||||
from homeassistant.components.media_player import (
|
from homeassistant.components.media_player import (
|
||||||
|
ATTR_MEDIA_ANNOUNCE,
|
||||||
ATTR_MEDIA_CONTENT_ID,
|
ATTR_MEDIA_CONTENT_ID,
|
||||||
ATTR_MEDIA_CONTENT_TYPE,
|
ATTR_MEDIA_CONTENT_TYPE,
|
||||||
|
ATTR_MEDIA_EXTRA,
|
||||||
ATTR_MEDIA_SEEK_POSITION,
|
ATTR_MEDIA_SEEK_POSITION,
|
||||||
ATTR_MEDIA_SHUFFLE,
|
ATTR_MEDIA_SHUFFLE,
|
||||||
ATTR_MEDIA_TRACK,
|
ATTR_MEDIA_TRACK,
|
||||||
|
@ -45,7 +47,7 @@ from homeassistant.const import (
|
||||||
STATE_UNKNOWN,
|
STATE_UNKNOWN,
|
||||||
)
|
)
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import entity_registry as er
|
from homeassistant.helpers import entity_platform, entity_registry as er
|
||||||
from homeassistant.setup import async_setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
|
|
||||||
|
|
||||||
|
@ -598,3 +600,59 @@ async def test_nested_group(hass: HomeAssistant) -> None:
|
||||||
assert hass.states.get("media_player.kitchen").state == STATE_OFF
|
assert hass.states.get("media_player.kitchen").state == STATE_OFF
|
||||||
assert hass.states.get("media_player.group_1").state == STATE_OFF
|
assert hass.states.get("media_player.group_1").state == STATE_OFF
|
||||||
assert hass.states.get("media_player.nested_group").state == STATE_OFF
|
assert hass.states.get("media_player.nested_group").state == STATE_OFF
|
||||||
|
|
||||||
|
|
||||||
|
async def test_service_play_media_kwargs(hass: HomeAssistant) -> None:
|
||||||
|
"""Test that kwargs get passed through on play_media service call."""
|
||||||
|
await async_setup_component(
|
||||||
|
hass,
|
||||||
|
MEDIA_DOMAIN,
|
||||||
|
{
|
||||||
|
MEDIA_DOMAIN: [
|
||||||
|
{"platform": "demo"},
|
||||||
|
{
|
||||||
|
"platform": DOMAIN,
|
||||||
|
"entities": [
|
||||||
|
"media_player.bedroom",
|
||||||
|
"media_player.living_room",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
await hass.async_start()
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
platform = entity_platform.async_get_platforms(hass, "media_player")[0]
|
||||||
|
mp_bedroom = platform.domain_entities["media_player.bedroom"]
|
||||||
|
mp_bedroom.play_media = MagicMock()
|
||||||
|
|
||||||
|
mp_living_room = platform.domain_entities["media_player.living_room"]
|
||||||
|
mp_living_room.play_media = MagicMock()
|
||||||
|
|
||||||
|
await hass.services.async_call(
|
||||||
|
MEDIA_DOMAIN,
|
||||||
|
SERVICE_PLAY_MEDIA,
|
||||||
|
{
|
||||||
|
ATTR_ENTITY_ID: "media_player.media_group",
|
||||||
|
ATTR_MEDIA_CONTENT_TYPE: "some_type",
|
||||||
|
ATTR_MEDIA_CONTENT_ID: "some_id",
|
||||||
|
ATTR_MEDIA_ANNOUNCE: "true",
|
||||||
|
ATTR_MEDIA_EXTRA: {
|
||||||
|
"volume": 20,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
assert mp_bedroom.play_media.call_count == 1
|
||||||
|
mp_bedroom.play_media.assert_called_with(
|
||||||
|
"some_type", "some_id", announce=True, extra={"volume": 20}
|
||||||
|
)
|
||||||
|
|
||||||
|
assert mp_living_room.play_media.call_count == 1
|
||||||
|
mp_living_room.play_media.assert_called_with(
|
||||||
|
"some_type", "some_id", announce=True, extra={"volume": 20}
|
||||||
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue