Files
core/tests/components/zimi/common.py
2025-08-26 12:24:54 +02:00

83 lines
2.4 KiB
Python

"""Common items for testing the zimi component."""
from unittest.mock import MagicMock, create_autospec, patch
from zcc.device import ControlPointDevice
from homeassistant.components.zimi.const import DOMAIN
from homeassistant.const import CONF_HOST, CONF_PORT
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
from tests.common import MockConfigEntry
DEVICE_INFO = {
"id": "test-device-id",
"name": "unknown",
"manufacturer": "Zimi",
"model": "Controller XYZ",
"hwVersion": "2.2.2",
"fwVersion": "3.3.3",
}
ENTITY_INFO = {
"id": "test-entity-id",
"name": "Test Entity Name",
"room": "Test Entity Room",
"type": "unknown",
}
INPUT_HOST = "192.168.1.100"
INPUT_PORT = 5003
def mock_api_device(
device_name: str | None = None,
entity_type: str | None = None,
entity_id: str | None = None,
) -> MagicMock:
"""Mock a Zimi ControlPointDevice which is used in the zcc API with defaults."""
mock_api_device = create_autospec(ControlPointDevice)
mock_api_device.identifier = entity_id or ENTITY_INFO["id"]
mock_api_device.room = ENTITY_INFO["room"]
mock_api_device.name = ENTITY_INFO["name"]
mock_api_device.type = entity_type or ENTITY_INFO["type"]
mock_manfacture_info = MagicMock()
mock_manfacture_info.identifier = DEVICE_INFO["id"]
mock_manfacture_info.manufacturer = DEVICE_INFO["manufacturer"]
mock_manfacture_info.model = DEVICE_INFO["model"]
mock_manfacture_info.name = device_name or DEVICE_INFO["name"]
mock_manfacture_info.hwVersion = DEVICE_INFO["hwVersion"]
mock_manfacture_info.firmwareVersion = DEVICE_INFO["fwVersion"]
mock_api_device.manufacture_info = mock_manfacture_info
mock_api_device.brightness = 0
mock_api_device.percentage = 0
return mock_api_device
async def setup_platform(
hass: HomeAssistant,
platform: str,
) -> MockConfigEntry:
"""Set up the specified Zimi platform."""
if not platform:
raise ValueError("Platform must be specified")
mock_config = MockConfigEntry(
domain=DOMAIN, data={CONF_HOST: INPUT_HOST, CONF_PORT: INPUT_PORT}
)
mock_config.add_to_hass(hass)
with patch("homeassistant.components.zimi.PLATFORMS", [platform]):
assert await async_setup_component(hass, DOMAIN, {})
await hass.async_block_till_done()
return mock_config