60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
"""Fixtures for IntelliFire integration tests."""
|
|
from collections.abc import Generator
|
|
from unittest.mock import AsyncMock, MagicMock, Mock, patch
|
|
|
|
from aiohttp.client_reqrep import ConnectionKey
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_setup_entry() -> Generator[AsyncMock, None, None]:
|
|
"""Mock setting up a config entry."""
|
|
with patch(
|
|
"homeassistant.components.intellifire.async_setup_entry", return_value=True
|
|
) as mock_setup:
|
|
yield mock_setup
|
|
|
|
|
|
@pytest.fixture()
|
|
def mock_fireplace_finder_none() -> Generator[None, MagicMock, None]:
|
|
"""Mock fireplace finder."""
|
|
mock_found_fireplaces = Mock()
|
|
mock_found_fireplaces.ips = []
|
|
with patch(
|
|
"homeassistant.components.intellifire.config_flow.AsyncUDPFireplaceFinder.search_fireplace"
|
|
):
|
|
yield mock_found_fireplaces
|
|
|
|
|
|
@pytest.fixture()
|
|
def mock_fireplace_finder_single() -> Generator[None, MagicMock, None]:
|
|
"""Mock fireplace finder."""
|
|
mock_found_fireplaces = Mock()
|
|
mock_found_fireplaces.ips = ["192.168.1.69"]
|
|
with patch(
|
|
"homeassistant.components.intellifire.config_flow.AsyncUDPFireplaceFinder.search_fireplace"
|
|
):
|
|
yield mock_found_fireplaces
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_intellifire_config_flow() -> Generator[None, MagicMock, None]:
|
|
"""Return a mocked IntelliFire client."""
|
|
data_mock = Mock()
|
|
data_mock.serial = "12345"
|
|
|
|
with patch(
|
|
"homeassistant.components.intellifire.config_flow.IntellifireAPILocal",
|
|
autospec=True,
|
|
) as intellifire_mock:
|
|
intellifire = intellifire_mock.return_value
|
|
intellifire.data = data_mock
|
|
yield intellifire
|
|
|
|
|
|
def mock_api_connection_error() -> ConnectionError:
|
|
"""Return a fake a ConnectionError for iftapi.net."""
|
|
ret = ConnectionError()
|
|
ret.args = [ConnectionKey("iftapi.net", 443, False, None, None, None, None)]
|
|
return ret
|