mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Sonos tests snapshot and restore services (#122198)
This commit is contained in:
parent
a6068dcdf2
commit
d1d2ce1270
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@ -12,8 +13,16 @@ from homeassistant.components.media_player import (
|
|||||||
SERVICE_SELECT_SOURCE,
|
SERVICE_SELECT_SOURCE,
|
||||||
MediaPlayerEnqueue,
|
MediaPlayerEnqueue,
|
||||||
)
|
)
|
||||||
from homeassistant.components.sonos.const import SOURCE_LINEIN, SOURCE_TV
|
from homeassistant.components.sonos.const import (
|
||||||
from homeassistant.components.sonos.media_player import LONG_SERVICE_TIMEOUT
|
DOMAIN as SONOS_DOMAIN,
|
||||||
|
SOURCE_LINEIN,
|
||||||
|
SOURCE_TV,
|
||||||
|
)
|
||||||
|
from homeassistant.components.sonos.media_player import (
|
||||||
|
LONG_SERVICE_TIMEOUT,
|
||||||
|
SERVICE_RESTORE,
|
||||||
|
SERVICE_SNAPSHOT,
|
||||||
|
)
|
||||||
from homeassistant.const import STATE_IDLE
|
from homeassistant.const import STATE_IDLE
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.exceptions import ServiceValidationError
|
from homeassistant.exceptions import ServiceValidationError
|
||||||
@ -22,8 +31,9 @@ from homeassistant.helpers.device_registry import (
|
|||||||
CONNECTION_UPNP,
|
CONNECTION_UPNP,
|
||||||
DeviceRegistry,
|
DeviceRegistry,
|
||||||
)
|
)
|
||||||
|
from homeassistant.setup import async_setup_component
|
||||||
|
|
||||||
from .conftest import MockMusicServiceItem, SoCoMockFactory
|
from .conftest import MockMusicServiceItem, MockSoCo, SoCoMockFactory
|
||||||
|
|
||||||
|
|
||||||
async def test_device_registry(
|
async def test_device_registry(
|
||||||
@ -707,3 +717,54 @@ async def test_play_media_favorite_item_id(
|
|||||||
blocking=True,
|
blocking=True,
|
||||||
)
|
)
|
||||||
assert "UNKNOWN_ID" in str(sve.value)
|
assert "UNKNOWN_ID" in str(sve.value)
|
||||||
|
|
||||||
|
|
||||||
|
async def _setup_hass(hass: HomeAssistant):
|
||||||
|
await async_setup_component(
|
||||||
|
hass,
|
||||||
|
SONOS_DOMAIN,
|
||||||
|
{
|
||||||
|
"sonos": {
|
||||||
|
"media_player": {
|
||||||
|
"interface_addr": "127.0.0.1",
|
||||||
|
"hosts": ["10.10.10.1", "10.10.10.2"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
|
||||||
|
async def test_service_snapshot_restore(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
soco_factory: SoCoMockFactory,
|
||||||
|
) -> None:
|
||||||
|
"""Test the snapshot and restore services."""
|
||||||
|
soco_factory.cache_mock(MockSoCo(), "10.10.10.1", "Living Room")
|
||||||
|
soco_factory.cache_mock(MockSoCo(), "10.10.10.2", "Bedroom")
|
||||||
|
await _setup_hass(hass)
|
||||||
|
with patch(
|
||||||
|
"homeassistant.components.sonos.speaker.Snapshot.snapshot"
|
||||||
|
) as mock_snapshot:
|
||||||
|
await hass.services.async_call(
|
||||||
|
SONOS_DOMAIN,
|
||||||
|
SERVICE_SNAPSHOT,
|
||||||
|
{
|
||||||
|
"entity_id": ["media_player.living_room", "media_player.bedroom"],
|
||||||
|
},
|
||||||
|
blocking=True,
|
||||||
|
)
|
||||||
|
assert mock_snapshot.call_count == 2
|
||||||
|
|
||||||
|
with patch(
|
||||||
|
"homeassistant.components.sonos.speaker.Snapshot.restore"
|
||||||
|
) as mock_restore:
|
||||||
|
await hass.services.async_call(
|
||||||
|
SONOS_DOMAIN,
|
||||||
|
SERVICE_RESTORE,
|
||||||
|
{
|
||||||
|
"entity_id": ["media_player.living_room", "media_player.bedroom"],
|
||||||
|
},
|
||||||
|
blocking=True,
|
||||||
|
)
|
||||||
|
assert mock_restore.call_count == 2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user