core/tests/components/fibaro/test_scene.py

55 lines
1.7 KiB
Python

"""Test the Fibaro scene platform."""
from pyfibaro.fibaro_scene import SceneModel
from homeassistant.components.scene import DOMAIN as SCENE_DOMAIN
from homeassistant.const import ATTR_ENTITY_ID, SERVICE_TURN_ON, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from .conftest import setup_platform
async def test_entity_attributes(hass: HomeAssistant, fibaro_scene: SceneModel) -> None:
"""Test that the attributes of the entity are correct."""
# Arrange
entity_registry = er.async_get(hass)
# Act
await setup_platform(hass, Platform.SCENE, "Room 1", [fibaro_scene])
# Assert
entry = entity_registry.async_get("scene.room_1_test_scene")
assert entry
assert entry.unique_id == "hc2_111111.scene.1"
assert entry.original_name == "Room 1 Test scene"
async def test_entity_attributes_without_room(
hass: HomeAssistant, fibaro_scene: SceneModel
) -> None:
"""Test that the attributes of the entity are correct."""
# Arrange
entity_registry = er.async_get(hass)
# Act
await setup_platform(hass, Platform.SCENE, None, [fibaro_scene])
# Assert
entry = entity_registry.async_get("scene.unknown_test_scene")
assert entry
assert entry.unique_id == "hc2_111111.scene.1"
async def test_activate_scene(hass: HomeAssistant, fibaro_scene: SceneModel) -> None:
"""Test activate scene is called."""
# Arrange
await setup_platform(hass, Platform.SCENE, "Room 1", [fibaro_scene])
# Act
await hass.services.async_call(
SCENE_DOMAIN,
SERVICE_TURN_ON,
{ATTR_ENTITY_ID: "scene.room_1_test_scene"},
blocking=True,
)
# Assert
assert fibaro_scene.start.call_count == 1