2021-03-02 00:18:18 +01:00
|
|
|
"""Test fixtures for the cast integration."""
|
|
|
|
# pylint: disable=protected-access
|
|
|
|
from unittest.mock import AsyncMock, MagicMock, patch
|
|
|
|
|
|
|
|
import pychromecast
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture()
|
|
|
|
def dial_mock():
|
|
|
|
"""Mock pychromecast dial."""
|
|
|
|
dial_mock = MagicMock()
|
|
|
|
dial_mock.get_multizone_status.return_value.dynamic_groups = []
|
|
|
|
return dial_mock
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture()
|
|
|
|
def castbrowser_mock():
|
|
|
|
"""Mock pychromecast CastBrowser."""
|
|
|
|
return MagicMock()
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture()
|
|
|
|
def castbrowser_constructor_mock():
|
|
|
|
"""Mock pychromecast CastBrowser constructor."""
|
|
|
|
return MagicMock()
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture()
|
|
|
|
def mz_mock():
|
|
|
|
"""Mock pychromecast MultizoneManager."""
|
|
|
|
return MagicMock()
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture()
|
|
|
|
def pycast_mock(castbrowser_mock, castbrowser_constructor_mock):
|
|
|
|
"""Mock pychromecast."""
|
|
|
|
pycast_mock = MagicMock()
|
2021-11-11 10:25:23 +01:00
|
|
|
pycast_mock.IDLE_APP_ID = pychromecast.IDLE_APP_ID
|
2021-03-25 14:06:01 +01:00
|
|
|
pycast_mock.IGNORE_CEC = []
|
2021-11-11 12:33:15 +01:00
|
|
|
pycast_mock.const = pychromecast.const
|
2021-03-02 00:18:18 +01:00
|
|
|
pycast_mock.discovery.CastBrowser = castbrowser_constructor_mock
|
|
|
|
pycast_mock.discovery.CastBrowser.return_value = castbrowser_mock
|
|
|
|
pycast_mock.discovery.AbstractCastListener = (
|
|
|
|
pychromecast.discovery.AbstractCastListener
|
|
|
|
)
|
|
|
|
return pycast_mock
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture()
|
|
|
|
def quick_play_mock():
|
|
|
|
"""Mock pychromecast quick_play."""
|
|
|
|
return MagicMock()
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
|
|
def cast_mock(dial_mock, mz_mock, pycast_mock, quick_play_mock):
|
|
|
|
"""Mock pychromecast."""
|
|
|
|
with patch(
|
|
|
|
"homeassistant.components.cast.media_player.pychromecast", pycast_mock
|
|
|
|
), patch(
|
|
|
|
"homeassistant.components.cast.discovery.pychromecast", pycast_mock
|
|
|
|
), patch(
|
|
|
|
"homeassistant.components.cast.helpers.dial", dial_mock
|
|
|
|
), patch(
|
|
|
|
"homeassistant.components.cast.media_player.MultizoneManager",
|
|
|
|
return_value=mz_mock,
|
|
|
|
), patch(
|
|
|
|
"homeassistant.components.cast.media_player.zeroconf.async_get_instance",
|
|
|
|
AsyncMock(),
|
|
|
|
), patch(
|
|
|
|
"homeassistant.components.cast.media_player.quick_play",
|
|
|
|
quick_play_mock,
|
|
|
|
):
|
|
|
|
yield
|