mirror of
https://github.com/home-assistant/core.git
synced 2025-11-11 03:50:55 +00:00
83 lines
2.4 KiB
Python
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
|