Add HA lifecycle tests and CI
Tests / tests (push) Canceled after 0s

This commit is contained in:
buzera committed 2026-10-26 18:21:18 +02:00
1 parent cea79b6b48
commit c771bc360a
12 files changed
+378 -4

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
"""Real Home Assistant fixtures, isolated from the offline boundary doubles."""
from unittest.mock import patch
import pytest
from homeassistant.core import ServiceRegistry
from pytest_homeassistant_custom_component.common import MockConfigEntry
@pytest.fixture(autouse=True)
def custom_integrations(enable_custom_integrations):
"""Let HA discover custom_components/heating_mpc in this checkout."""
@pytest.fixture(autouse=True)
def no_actuator_calls():
"""Reject every HA service call during all tested observer lifecycle paths."""
with patch.object(ServiceRegistry, "async_call", side_effect=AssertionError(
"The shadow integration must never call HA services"
)) as calls:
yield calls
calls.assert_not_called()
@pytest.fixture
def entry():
return MockConfigEntry(
domain="heating_mpc", version=2, unique_id="home_heating",
data={"climate_entity": "climate.reference", "heater_entity": "switch.boiler",
"room_entities": ["sensor.room"],
"outside_temperature_sources": ["sensor.outside"],
"weights": {"sensor.room": 1.0}, "horizon_minutes": 60},
)
@pytest.fixture
def inputs(hass):
hass.states.async_set("sensor.room", "20", {"unit_of_measurement": "°C"})
hass.states.async_set("sensor.outside", "5", {"unit_of_measurement": "°C"})
hass.states.async_set("switch.boiler", "off")
hass.states.async_set("climate.reference", "heat", {"temperature": 22, "preset_mode": "comfort"})