mirror of https://github.com/home-assistant/core
69 lines
2.0 KiB
Python
69 lines
2.0 KiB
Python
"""Fixtures for P1 Monitor integration tests."""
|
|
|
|
import json
|
|
from unittest.mock import AsyncMock, MagicMock, patch
|
|
|
|
from p1monitor import Phases, Settings, SmartMeter, WaterMeter
|
|
import pytest
|
|
|
|
from homeassistant.components.p1_monitor.const import DOMAIN
|
|
from homeassistant.const import CONF_HOST, CONF_PORT
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from tests.common import MockConfigEntry, load_fixture
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_config_entry() -> MockConfigEntry:
|
|
"""Return the default mocked config entry."""
|
|
return MockConfigEntry(
|
|
title="monitor",
|
|
domain=DOMAIN,
|
|
data={CONF_HOST: "example", CONF_PORT: 80},
|
|
unique_id="unique_thingy",
|
|
version=2,
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_p1monitor():
|
|
"""Return a mocked P1 Monitor client."""
|
|
with patch(
|
|
"homeassistant.components.p1_monitor.coordinator.P1Monitor"
|
|
) as p1monitor_mock:
|
|
client = p1monitor_mock.return_value
|
|
client.smartmeter = AsyncMock(
|
|
return_value=SmartMeter.from_dict(
|
|
json.loads(load_fixture("p1_monitor/smartmeter.json"))
|
|
)
|
|
)
|
|
client.phases = AsyncMock(
|
|
return_value=Phases.from_dict(
|
|
json.loads(load_fixture("p1_monitor/phases.json"))
|
|
)
|
|
)
|
|
client.settings = AsyncMock(
|
|
return_value=Settings.from_dict(
|
|
json.loads(load_fixture("p1_monitor/settings.json"))
|
|
)
|
|
)
|
|
client.watermeter = AsyncMock(
|
|
return_value=WaterMeter.from_dict(
|
|
json.loads(load_fixture("p1_monitor/watermeter.json"))
|
|
)
|
|
)
|
|
yield client
|
|
|
|
|
|
@pytest.fixture
|
|
async def init_integration(
|
|
hass: HomeAssistant, mock_config_entry: MockConfigEntry, mock_p1monitor: MagicMock
|
|
) -> MockConfigEntry:
|
|
"""Set up the P1 Monitor integration for testing."""
|
|
mock_config_entry.add_to_hass(hass)
|
|
|
|
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
return mock_config_entry
|