mirror of
https://github.com/home-assistant/core.git
synced 2025-12-27 14:31:13 +00:00
Rewrite Plex tests to use mocked payloads (#44044)
This commit is contained in:
@@ -3,39 +3,29 @@ from unittest.mock import patch
|
||||
|
||||
from plexapi.exceptions import NotFound
|
||||
|
||||
from homeassistant.components.plex.const import DOMAIN, SERVERS
|
||||
|
||||
|
||||
async def test_plex_tv_clients(hass, entry, mock_plex_account, setup_plex_server):
|
||||
async def test_plex_tv_clients(
|
||||
hass, entry, setup_plex_server, requests_mock, player_plexweb_resources
|
||||
):
|
||||
"""Test getting Plex clients from plex.tv."""
|
||||
resource = next(
|
||||
x
|
||||
for x in mock_plex_account.resources()
|
||||
if x.name.startswith("plex.tv Resource Player")
|
||||
)
|
||||
with patch.object(resource, "connect", side_effect=NotFound):
|
||||
mock_plex_server = await setup_plex_server()
|
||||
requests_mock.get("/resources", text=player_plexweb_resources)
|
||||
|
||||
with patch("plexapi.myplex.MyPlexResource.connect", side_effect=NotFound):
|
||||
await setup_plex_server()
|
||||
await hass.async_block_till_done()
|
||||
|
||||
server_id = mock_plex_server.machineIdentifier
|
||||
plex_server = hass.data[DOMAIN][SERVERS][server_id]
|
||||
media_players_before = len(hass.states.async_entity_ids("media_player"))
|
||||
await hass.config_entries.async_unload(entry.entry_id)
|
||||
|
||||
# Ensure one more client is discovered
|
||||
await hass.config_entries.async_unload(entry.entry_id)
|
||||
mock_plex_server = await setup_plex_server()
|
||||
plex_server = hass.data[DOMAIN][SERVERS][server_id]
|
||||
await setup_plex_server()
|
||||
media_players_after = len(hass.states.async_entity_ids("media_player"))
|
||||
assert media_players_after == media_players_before + 1
|
||||
|
||||
# Ensure only plex.tv resource client is found
|
||||
await hass.config_entries.async_unload(entry.entry_id)
|
||||
mock_plex_server = await setup_plex_server(num_users=0)
|
||||
plex_server = hass.data[DOMAIN][SERVERS][server_id]
|
||||
assert len(hass.states.async_entity_ids("media_player")) == 1
|
||||
|
||||
# Ensure cache gets called
|
||||
await plex_server._async_update_platforms()
|
||||
await hass.async_block_till_done()
|
||||
# Ensure only plex.tv resource client is found
|
||||
with patch("plexapi.server.PlexServer.sessions", return_value=[]):
|
||||
await setup_plex_server(disable_clients=True)
|
||||
|
||||
assert len(hass.states.async_entity_ids("media_player")) == 1
|
||||
|
||||
Reference in New Issue
Block a user