2020-06-17 19:04:47 +00:00
|
|
|
"""Tests for Plex media_players."""
|
2021-01-01 21:31:56 +00:00
|
|
|
from unittest.mock import patch
|
|
|
|
|
2020-06-17 19:04:47 +00:00
|
|
|
from plexapi.exceptions import NotFound
|
|
|
|
|
|
|
|
|
2021-01-07 18:56:52 +00:00
|
|
|
async def test_plex_tv_clients(
|
|
|
|
hass, entry, setup_plex_server, requests_mock, player_plexweb_resources
|
|
|
|
):
|
2020-06-17 19:04:47 +00:00
|
|
|
"""Test getting Plex clients from plex.tv."""
|
2021-01-07 18:56:52 +00:00
|
|
|
requests_mock.get("/resources", text=player_plexweb_resources)
|
|
|
|
|
|
|
|
with patch("plexapi.myplex.MyPlexResource.connect", side_effect=NotFound):
|
|
|
|
await setup_plex_server()
|
2020-06-17 19:04:47 +00:00
|
|
|
await hass.async_block_till_done()
|
|
|
|
|
|
|
|
media_players_before = len(hass.states.async_entity_ids("media_player"))
|
2021-01-07 18:56:52 +00:00
|
|
|
await hass.config_entries.async_unload(entry.entry_id)
|
2020-06-17 19:04:47 +00:00
|
|
|
|
|
|
|
# Ensure one more client is discovered
|
2021-01-07 18:56:52 +00:00
|
|
|
await setup_plex_server()
|
2020-06-17 19:04:47 +00:00
|
|
|
media_players_after = len(hass.states.async_entity_ids("media_player"))
|
|
|
|
assert media_players_after == media_players_before + 1
|
|
|
|
|
|
|
|
await hass.config_entries.async_unload(entry.entry_id)
|
|
|
|
|
2021-01-07 18:56:52 +00:00
|
|
|
# Ensure only plex.tv resource client is found
|
|
|
|
with patch("plexapi.server.PlexServer.sessions", return_value=[]):
|
|
|
|
await setup_plex_server(disable_clients=True)
|
2020-06-17 19:04:47 +00:00
|
|
|
|
|
|
|
assert len(hass.states.async_entity_ids("media_player")) == 1
|