Files
core/tests/components/plex/helpers.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.4 KiB
Python
Raw Permalink Normal View History

"""Helper methods for Plex tests."""
from datetime import timedelta
from typing import Any
2021-03-25 13:12:12 -05:00
from plexwebsocket import SIGNAL_CONNECTION_STATE, STATE_CONNECTED
from homeassistant.core import HomeAssistant
from homeassistant.helpers.typing import UNDEFINED, UndefinedType
from homeassistant.util import dt as dt_util
from tests.common import async_fire_time_changed
UPDATE_PAYLOAD = {
"PlaySessionStateNotification": [
{
"sessionKey": "999",
"ratingKey": "12345",
"viewOffset": 5050,
"playQueueItemID": 54321,
"state": "playing",
}
]
}
def websocket_connected(mock_websocket):
"""Call the websocket callback method to signal successful connection."""
callback = mock_websocket.call_args[0][1]
callback(SIGNAL_CONNECTION_STATE, STATE_CONNECTED, None)
def trigger_plex_update(
mock_websocket,
msgtype="playing",
payload: dict[str, Any] | UndefinedType = UNDEFINED,
):
"""Call the websocket callback method with a Plex update."""
callback = mock_websocket.call_args[0][1]
callback(msgtype, UPDATE_PAYLOAD if payload is UNDEFINED else payload, None)
async def wait_for_debouncer(hass: HomeAssistant) -> None:
"""Move time forward to wait for sensor debouncer."""
next_update = dt_util.utcnow() + timedelta(seconds=3)
async_fire_time_changed(hass, next_update)
await hass.async_block_till_done()