core/tests/components/kaleidescape/test_sensor.py

49 lines
1.6 KiB
Python

"""Tests for Kaleidescape sensor platform."""
from unittest.mock import MagicMock
from kaleidescape import const as kaleidescape_const
from homeassistant.const import ATTR_FRIENDLY_NAME
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from . import MOCK_SERIAL
from tests.common import MockConfigEntry
ENTITY_ID = f"sensor.kaleidescape_device_{MOCK_SERIAL}"
FRIENDLY_NAME = f"Kaleidescape Device {MOCK_SERIAL}"
async def test_sensors(
hass: HomeAssistant,
mock_device: MagicMock,
mock_integration: MockConfigEntry,
) -> None:
"""Test sensors."""
entity = hass.states.get(f"{ENTITY_ID}_media_location")
entry = er.async_get(hass).async_get(f"{ENTITY_ID}_media_location")
assert entity
assert entity.state == "none"
assert (
entity.attributes.get(ATTR_FRIENDLY_NAME) == f"{FRIENDLY_NAME} Media Location"
)
assert entry
assert entry.unique_id == f"{MOCK_SERIAL}-media_location"
entity = hass.states.get(f"{ENTITY_ID}_play_status")
entry = er.async_get(hass).async_get(f"{ENTITY_ID}_play_status")
assert entity
assert entity.state == "none"
assert entity.attributes.get(ATTR_FRIENDLY_NAME) == f"{FRIENDLY_NAME} Play Status"
assert entry
assert entry.unique_id == f"{MOCK_SERIAL}-play_status"
mock_device.movie.play_status = kaleidescape_const.PLAY_STATUS_PLAYING
mock_device.dispatcher.send(kaleidescape_const.PLAY_STATUS)
await hass.async_block_till_done()
entity = hass.states.get(f"{ENTITY_ID}_play_status")
assert entity is not None
assert entity.state == "playing"