90 lines
2.1 KiB
Python
90 lines
2.1 KiB
Python
"""Fixtures for Adax testing."""
|
|
|
|
from typing import Any
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
from homeassistant.components.adax.const import (
|
|
ACCOUNT_ID,
|
|
CLOUD,
|
|
CONNECTION_TYPE,
|
|
DOMAIN,
|
|
LOCAL,
|
|
)
|
|
from homeassistant.const import (
|
|
CONF_IP_ADDRESS,
|
|
CONF_PASSWORD,
|
|
CONF_TOKEN,
|
|
CONF_UNIQUE_ID,
|
|
)
|
|
|
|
from tests.common import AsyncMock, MockConfigEntry
|
|
|
|
CLOUD_CONFIG = {
|
|
ACCOUNT_ID: 12345,
|
|
CONF_PASSWORD: "pswd",
|
|
CONNECTION_TYPE: CLOUD,
|
|
}
|
|
|
|
LOCAL_CONFIG = {
|
|
CONF_IP_ADDRESS: "192.168.1.12",
|
|
CONF_TOKEN: "TOKEN-123",
|
|
CONF_UNIQUE_ID: "11:22:33:44:55:66",
|
|
CONNECTION_TYPE: LOCAL,
|
|
}
|
|
|
|
|
|
CLOUD_DEVICE_DATA: dict[str, Any] = [
|
|
{
|
|
"id": "1",
|
|
"homeId": "1",
|
|
"name": "Room 1",
|
|
"temperature": 15,
|
|
"targetTemperature": 20,
|
|
"heatingEnabled": True,
|
|
}
|
|
]
|
|
|
|
LOCAL_DEVICE_DATA: dict[str, Any] = {
|
|
"current_temperature": 15,
|
|
"target_temperature": 20,
|
|
}
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_cloud_config_entry(request: pytest.FixtureRequest) -> MockConfigEntry:
|
|
"""Mock a "CLOUD" config entry."""
|
|
return MockConfigEntry(domain=DOMAIN, data=CLOUD_CONFIG)
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_local_config_entry(request: pytest.FixtureRequest) -> MockConfigEntry:
|
|
"""Mock a "LOCAL" config entry."""
|
|
return MockConfigEntry(domain=DOMAIN, data=LOCAL_CONFIG)
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_adax_cloud():
|
|
"""Mock climate data."""
|
|
with patch("homeassistant.components.adax.coordinator.Adax") as mock_adax:
|
|
mock_adax_class = mock_adax.return_value
|
|
|
|
mock_adax_class.get_rooms = AsyncMock()
|
|
mock_adax_class.get_rooms.return_value = CLOUD_DEVICE_DATA
|
|
|
|
mock_adax_class.update = AsyncMock()
|
|
mock_adax_class.update.return_value = None
|
|
yield mock_adax_class
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_adax_local():
|
|
"""Mock climate data."""
|
|
with patch("homeassistant.components.adax.coordinator.AdaxLocal") as mock_adax:
|
|
mock_adax_class = mock_adax.return_value
|
|
|
|
mock_adax_class.get_status = AsyncMock()
|
|
mock_adax_class.get_status.return_value = LOCAL_DEVICE_DATA
|
|
yield mock_adax_class
|