hass-core/tests/components/plex/test_media_players.py
Paulus Schoutsen 9e07910ab0
Mark entities as unavailable when they are removed but are still registered (#45528)
* Mark entities as unavailable when they are removed but are still registered

* Add sync_entity_lifecycle to collection helper

* Remove debug print

* Lint

* Fix tests

* Fix tests

* Update zha

* Update zone

* Fix tests

* Update hyperion

* Update rfxtrx

* Fix tests

* Pass force_remove=True from integrations

Co-authored-by: Erik <erik@montnemery.com>
2021-02-08 10:45:46 +01:00

31 lines
1.1 KiB
Python

"""Tests for Plex media_players."""
from unittest.mock import patch
from plexapi.exceptions import NotFound
async def test_plex_tv_clients(
hass, entry, setup_plex_server, requests_mock, player_plexweb_resources
):
"""Test getting Plex clients from plex.tv."""
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()
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 setup_plex_server()
media_players_after = len(hass.states.async_entity_ids("media_player"))
assert media_players_after == media_players_before + 1
await hass.config_entries.async_remove(entry.entry_id)
# 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