hass-core/tests/components/fibaro/conftest.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

98 lines
2.7 KiB
Python
Raw Normal View History

"""Test helpers."""
from collections.abc import Generator
from unittest.mock import AsyncMock, Mock, patch
import pytest
2023-10-22 23:36:41 +02:00
from homeassistant.components.fibaro import CONF_IMPORT_PLUGINS, DOMAIN
from homeassistant.const import CONF_PASSWORD, CONF_URL, CONF_USERNAME
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
2023-10-22 23:36:41 +02:00
TEST_SERIALNUMBER = "HC2-111111"
TEST_NAME = "my_fibaro_home_center"
TEST_URL = "http://192.168.1.1/api/"
TEST_USERNAME = "user"
TEST_PASSWORD = "password"
TEST_VERSION = "4.360"
2023-10-23 11:04:21 +02:00
TEST_MODEL = "HC3"
2023-10-22 23:36:41 +02:00
@pytest.fixture
def mock_setup_entry() -> Generator[AsyncMock]:
"""Override async_setup_entry."""
with patch(
"homeassistant.components.fibaro.async_setup_entry", return_value=True
) as mock_setup_entry:
yield mock_setup_entry
2023-10-22 23:36:41 +02:00
@pytest.fixture
def mock_scene() -> Mock:
"""Fixture for an individual scene."""
2023-10-22 23:36:41 +02:00
scene = Mock()
scene.fibaro_id = 1
scene.name = "Test scene"
scene.room_id = 1
scene.visible = True
return scene
2023-10-22 23:36:41 +02:00
@pytest.fixture
def mock_room() -> Mock:
"""Fixture for an individual room."""
room = Mock()
room.fibaro_id = 1
room.name = "Room 1"
return room
@pytest.fixture
def mock_config_entry(hass: HomeAssistant) -> MockConfigEntry:
"""Return the default mocked config entry."""
mock_config_entry = MockConfigEntry(
domain=DOMAIN,
data={
CONF_URL: TEST_URL,
CONF_USERNAME: TEST_USERNAME,
CONF_PASSWORD: TEST_PASSWORD,
CONF_IMPORT_PLUGINS: True,
},
)
mock_config_entry.add_to_hass(hass)
return mock_config_entry
@pytest.fixture
def mock_fibaro_client() -> Generator[Mock]:
2023-10-22 23:36:41 +02:00
"""Return a mocked FibaroClient."""
info_mock = Mock()
info_mock.serial_number = TEST_SERIALNUMBER
info_mock.hc_name = TEST_NAME
info_mock.current_version = TEST_VERSION
2023-10-23 11:04:21 +02:00
info_mock.platform = TEST_MODEL
2023-10-22 23:36:41 +02:00
with patch(
"homeassistant.components.fibaro.FibaroClient", autospec=True
) as fibaro_client_mock:
client = fibaro_client_mock.return_value
client.set_authentication.return_value = None
client.connect.return_value = True
client.read_info.return_value = info_mock
client.read_rooms.return_value = []
client.read_scenes.return_value = []
client.read_devices.return_value = []
client.register_update_handler.return_value = None
client.unregister_update_handler.return_value = None
yield client
async def init_integration(
hass: HomeAssistant, mock_config_entry: MockConfigEntry
) -> None:
"""Set up the fibaro integration for testing."""
assert await hass.config_entries.async_setup(mock_config_entry.entry_id)
await hass.async_block_till_done()