2023-11-30 15:50:13 +00:00
|
|
|
"""Configuration for Flexit Nordic (BACnet) tests."""
|
2024-01-18 13:37:43 +00:00
|
|
|
from collections.abc import Generator
|
|
|
|
from unittest.mock import AsyncMock, patch
|
2023-11-30 15:50:13 +00:00
|
|
|
|
2024-01-18 13:37:43 +00:00
|
|
|
from flexit_bacnet import FlexitBACnet
|
2023-11-30 15:50:13 +00:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from homeassistant import config_entries
|
|
|
|
from homeassistant.components.flexit_bacnet.const import DOMAIN
|
2024-01-18 13:37:43 +00:00
|
|
|
from homeassistant.const import CONF_DEVICE_ID, CONF_IP_ADDRESS
|
2023-11-30 15:50:13 +00:00
|
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from homeassistant.data_entry_flow import FlowResultType
|
|
|
|
|
2024-01-18 13:37:43 +00:00
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
2023-11-30 15:50:13 +00:00
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
async def flow_id(hass: HomeAssistant) -> str:
|
|
|
|
"""Return initial ID for user-initiated configuration flow."""
|
|
|
|
result = await hass.config_entries.flow.async_init(
|
|
|
|
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
|
|
|
)
|
|
|
|
|
|
|
|
assert result["type"] == FlowResultType.FORM
|
|
|
|
assert result["errors"] == {}
|
|
|
|
|
|
|
|
return result["flow_id"]
|
|
|
|
|
|
|
|
|
2024-01-18 13:37:43 +00:00
|
|
|
@pytest.fixture
|
|
|
|
def mock_flexit_bacnet() -> Generator[AsyncMock, None, None]:
|
|
|
|
"""Mock data from the device."""
|
|
|
|
flexit_bacnet = AsyncMock(spec=FlexitBACnet)
|
2023-11-30 15:50:13 +00:00
|
|
|
with patch(
|
2024-01-18 13:37:43 +00:00
|
|
|
"homeassistant.components.flexit_bacnet.config_flow.FlexitBACnet",
|
|
|
|
return_value=flexit_bacnet,
|
2023-11-30 15:50:13 +00:00
|
|
|
), patch(
|
2024-01-18 14:45:56 +00:00
|
|
|
"homeassistant.components.flexit_bacnet.coordinator.FlexitBACnet",
|
2024-01-18 13:37:43 +00:00
|
|
|
return_value=flexit_bacnet,
|
2023-11-30 15:50:13 +00:00
|
|
|
):
|
2024-01-18 13:37:43 +00:00
|
|
|
flexit_bacnet.serial_number = "0000-0001"
|
|
|
|
flexit_bacnet.device_name = "Device Name"
|
|
|
|
flexit_bacnet.room_temperature = 19.0
|
|
|
|
flexit_bacnet.air_temp_setpoint_away = 18.0
|
|
|
|
flexit_bacnet.air_temp_setpoint_home = 22.0
|
|
|
|
flexit_bacnet.ventilation_mode = 4
|
|
|
|
|
|
|
|
yield flexit_bacnet
|
2023-11-30 15:50:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
2024-01-18 13:37:43 +00:00
|
|
|
def mock_setup_entry() -> Generator[AsyncMock, None, None]:
|
2023-11-30 15:50:13 +00:00
|
|
|
"""Mock setting up a config entry."""
|
|
|
|
with patch(
|
|
|
|
"homeassistant.components.flexit_bacnet.async_setup_entry", return_value=True
|
|
|
|
) as setup_entry_mock:
|
|
|
|
yield setup_entry_mock
|
2024-01-18 13:37:43 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def mock_config_entry() -> MockConfigEntry:
|
|
|
|
"""Mock a config entry."""
|
|
|
|
return MockConfigEntry(
|
|
|
|
domain=DOMAIN,
|
|
|
|
data={
|
|
|
|
CONF_IP_ADDRESS: "1.1.1.1",
|
|
|
|
CONF_DEVICE_ID: 2,
|
|
|
|
},
|
|
|
|
unique_id="0000-0001",
|
|
|
|
)
|