Handle special Plex library sections (#49525)
This commit is contained in:
parent
5e07ab17b2
commit
8c311cbaa0
7 changed files with 186 additions and 6 deletions
|
@ -8,13 +8,24 @@ import plexapi
|
|||
import requests
|
||||
|
||||
import homeassistant.components.plex.const as const
|
||||
from homeassistant.components.plex.models import (
|
||||
LIVE_TV_SECTION,
|
||||
TRANSIENT_SECTION,
|
||||
UNKNOWN_SECTION,
|
||||
)
|
||||
from homeassistant.config_entries import (
|
||||
ENTRY_STATE_LOADED,
|
||||
ENTRY_STATE_NOT_LOADED,
|
||||
ENTRY_STATE_SETUP_ERROR,
|
||||
ENTRY_STATE_SETUP_RETRY,
|
||||
)
|
||||
from homeassistant.const import CONF_TOKEN, CONF_URL, CONF_VERIFY_SSL, STATE_IDLE
|
||||
from homeassistant.const import (
|
||||
CONF_TOKEN,
|
||||
CONF_URL,
|
||||
CONF_VERIFY_SSL,
|
||||
STATE_IDLE,
|
||||
STATE_PLAYING,
|
||||
)
|
||||
from homeassistant.setup import async_setup_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
|
||||
|
@ -108,6 +119,66 @@ async def test_setup_with_photo_session(hass, entry, setup_plex_server):
|
|||
assert sensor.state == "0"
|
||||
|
||||
|
||||
async def test_setup_with_live_tv_session(hass, entry, setup_plex_server):
|
||||
"""Test setup component with a Live TV session."""
|
||||
await setup_plex_server(session_type="live_tv")
|
||||
|
||||
assert len(hass.config_entries.async_entries(const.DOMAIN)) == 1
|
||||
assert entry.state == ENTRY_STATE_LOADED
|
||||
await hass.async_block_till_done()
|
||||
|
||||
media_player = hass.states.get(
|
||||
"media_player.plex_plex_for_android_tv_shield_android_tv"
|
||||
)
|
||||
assert media_player.state == STATE_PLAYING
|
||||
assert media_player.attributes["media_library_title"] == LIVE_TV_SECTION
|
||||
|
||||
await wait_for_debouncer(hass)
|
||||
|
||||
sensor = hass.states.get("sensor.plex_plex_server_1")
|
||||
assert sensor.state == "1"
|
||||
|
||||
|
||||
async def test_setup_with_transient_session(hass, entry, setup_plex_server):
|
||||
"""Test setup component with a transient session."""
|
||||
await setup_plex_server(session_type="transient")
|
||||
|
||||
assert len(hass.config_entries.async_entries(const.DOMAIN)) == 1
|
||||
assert entry.state == ENTRY_STATE_LOADED
|
||||
await hass.async_block_till_done()
|
||||
|
||||
media_player = hass.states.get(
|
||||
"media_player.plex_plex_for_android_tv_shield_android_tv"
|
||||
)
|
||||
assert media_player.state == STATE_PLAYING
|
||||
assert media_player.attributes["media_library_title"] == TRANSIENT_SECTION
|
||||
|
||||
await wait_for_debouncer(hass)
|
||||
|
||||
sensor = hass.states.get("sensor.plex_plex_server_1")
|
||||
assert sensor.state == "1"
|
||||
|
||||
|
||||
async def test_setup_with_unknown_session(hass, entry, setup_plex_server):
|
||||
"""Test setup component with an unknown session."""
|
||||
await setup_plex_server(session_type="unknown")
|
||||
|
||||
assert len(hass.config_entries.async_entries(const.DOMAIN)) == 1
|
||||
assert entry.state == ENTRY_STATE_LOADED
|
||||
await hass.async_block_till_done()
|
||||
|
||||
media_player = hass.states.get(
|
||||
"media_player.plex_plex_for_android_tv_shield_android_tv"
|
||||
)
|
||||
assert media_player.state == STATE_PLAYING
|
||||
assert media_player.attributes["media_library_title"] == UNKNOWN_SECTION
|
||||
|
||||
await wait_for_debouncer(hass)
|
||||
|
||||
sensor = hass.states.get("sensor.plex_plex_server_1")
|
||||
assert sensor.state == "1"
|
||||
|
||||
|
||||
async def test_setup_when_certificate_changed(
|
||||
hass,
|
||||
requests_mock,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue