Use service_calls fixture in media_extractor tests (#120935)
This commit is contained in:
parent
8a23e37837
commit
c4903dd982
2 changed files with 16 additions and 23 deletions
|
@ -7,14 +7,12 @@ from unittest.mock import AsyncMock, patch
|
|||
import pytest
|
||||
|
||||
from homeassistant.components.media_extractor import DOMAIN
|
||||
from homeassistant.core import HomeAssistant, ServiceCall
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from . import MockYoutubeDL
|
||||
from .const import AUDIO_QUERY
|
||||
|
||||
from tests.common import async_mock_service
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
async def setup_homeassistant(hass: HomeAssistant):
|
||||
|
@ -31,12 +29,6 @@ async def setup_media_player(hass: HomeAssistant) -> None:
|
|||
await hass.async_block_till_done()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def calls(hass: HomeAssistant) -> list[ServiceCall]:
|
||||
"""Track calls to a mock service."""
|
||||
return async_mock_service(hass, "media_player", "play_media")
|
||||
|
||||
|
||||
@pytest.fixture(name="mock_youtube_dl")
|
||||
async def setup_mock_yt_dlp(hass: HomeAssistant) -> MockYoutubeDL:
|
||||
"""Mock YoutubeDL."""
|
||||
|
|
|
@ -100,7 +100,7 @@ async def test_extracting_playlist_no_entries(
|
|||
async def test_play_media_service(
|
||||
hass: HomeAssistant,
|
||||
mock_youtube_dl: MockYoutubeDL,
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
snapshot: SnapshotAssertion,
|
||||
request: pytest.FixtureRequest,
|
||||
config_fixture: str,
|
||||
|
@ -123,13 +123,14 @@ async def test_play_media_service(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert calls[0].data == snapshot
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data == snapshot
|
||||
|
||||
|
||||
async def test_download_error(
|
||||
hass: HomeAssistant,
|
||||
empty_media_extractor_config: dict[str, Any],
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
) -> None:
|
||||
"""Test handling DownloadError."""
|
||||
|
@ -152,7 +153,7 @@ async def test_download_error(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 1
|
||||
assert f"Could not retrieve data for the URL: {YOUTUBE_VIDEO}" in caplog.text
|
||||
|
||||
|
||||
|
@ -160,7 +161,7 @@ async def test_no_target_entity(
|
|||
hass: HomeAssistant,
|
||||
mock_youtube_dl: MockYoutubeDL,
|
||||
empty_media_extractor_config: dict[str, Any],
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
snapshot: SnapshotAssertion,
|
||||
) -> None:
|
||||
"""Test having no target entity."""
|
||||
|
@ -179,14 +180,15 @@ async def test_no_target_entity(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert calls[0].data == snapshot
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data == snapshot
|
||||
|
||||
|
||||
async def test_playlist(
|
||||
hass: HomeAssistant,
|
||||
mock_youtube_dl: MockYoutubeDL,
|
||||
empty_media_extractor_config: dict[str, Any],
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
snapshot: SnapshotAssertion,
|
||||
) -> None:
|
||||
"""Test extracting a playlist."""
|
||||
|
@ -205,14 +207,15 @@ async def test_playlist(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert calls[0].data == snapshot
|
||||
assert len(service_calls) == 2
|
||||
assert service_calls[1].data == snapshot
|
||||
|
||||
|
||||
async def test_playlist_no_entries(
|
||||
hass: HomeAssistant,
|
||||
mock_youtube_dl: MockYoutubeDL,
|
||||
empty_media_extractor_config: dict[str, Any],
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
) -> None:
|
||||
"""Test extracting a playlist without entries."""
|
||||
|
@ -231,7 +234,7 @@ async def test_playlist_no_entries(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 1
|
||||
assert (
|
||||
f"Could not retrieve data for the URL: {YOUTUBE_EMPTY_PLAYLIST}" in caplog.text
|
||||
)
|
||||
|
@ -240,7 +243,7 @@ async def test_playlist_no_entries(
|
|||
async def test_query_error(
|
||||
hass: HomeAssistant,
|
||||
empty_media_extractor_config: dict[str, Any],
|
||||
calls: list[ServiceCall],
|
||||
service_calls: list[ServiceCall],
|
||||
) -> None:
|
||||
"""Test handling error with query."""
|
||||
|
||||
|
@ -270,15 +273,13 @@ async def test_query_error(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(calls) == 0
|
||||
assert len(service_calls) == 1
|
||||
|
||||
|
||||
async def test_cookiefile_detection(
|
||||
hass: HomeAssistant,
|
||||
mock_youtube_dl: MockYoutubeDL,
|
||||
empty_media_extractor_config: dict[str, Any],
|
||||
calls: list[ServiceCall],
|
||||
snapshot: SnapshotAssertion,
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
) -> None:
|
||||
"""Test cookie file detection."""
|
||||
|
|
Loading…
Add table
Reference in a new issue