core/tests/components/probe_plus/conftest.py

61 lines
1.7 KiB
Python

"""Common fixtures for the Probe Plus tests."""
from collections.abc import Generator
from unittest.mock import AsyncMock, MagicMock, patch
from pyprobeplus.parser import ParserBase, ProbePlusData
import pytest
from homeassistant.components.probe_plus.const import DOMAIN
from homeassistant.const import CONF_ADDRESS
from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
@pytest.fixture
def mock_setup_entry() -> Generator[AsyncMock]:
"""Override async_setup_entry."""
with patch(
"homeassistant.components.probe_plus.async_setup_entry", return_value=True
) as mock_setup_entry:
yield mock_setup_entry
@pytest.fixture
def mock_config_entry(hass: HomeAssistant) -> MockConfigEntry:
"""Return the default mocked config entry."""
return MockConfigEntry(
title="FM210 aa:bb:cc:dd:ee:ff",
domain=DOMAIN,
version=1,
data={
CONF_ADDRESS: "aa:bb:cc:dd:ee:ff",
},
unique_id="aa:bb:cc:dd:ee:ff",
)
@pytest.fixture
def mock_probe_plus() -> MagicMock:
"""Mock the Probe Plus device."""
with patch(
"homeassistant.components.probe_plus.coordinator.ProbePlusDevice",
autospec=True,
) as mock_device:
device = mock_device.return_value
device.connected = True
device.name = "FM210 aa:bb:cc:dd:ee:ff"
mock_state = ParserBase()
mock_state.state = ProbePlusData(
relay_battery=50,
probe_battery=50,
probe_temperature=25.0,
probe_rssi=200,
probe_voltage=3.7,
relay_status=1,
relay_voltage=9.0,
)
device._device_state = mock_state
yield device