core/tests/components/adax/conftest.py

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