M8-R01A: align lifespan DSMR reconcile mock contract

This commit is contained in:
2026-08-24 00:35:24 +02:00
parent 9db7f63274
commit 2a47dab272
+10 -2
View File
@@ -261,6 +261,8 @@ def test_lifespan_exception_still_shuts_serial_before_other_runtime_teardown(mon
import app.main as main import app.main as main
events = [] events = []
runtime_settings = object()
applied_dsmr_settings = []
class _Scheduler: class _Scheduler:
def __init__(self, **_kwargs): pass def __init__(self, **_kwargs): pass
@@ -279,8 +281,13 @@ def test_lifespan_exception_still_shuts_serial_before_other_runtime_teardown(mon
monkeypatch.setattr(main, "ensure_auth_db_ready", lambda: None) monkeypatch.setattr(main, "ensure_auth_db_ready", lambda: None)
monkeypatch.setattr(main, "BackgroundScheduler", _Scheduler) monkeypatch.setattr(main, "BackgroundScheduler", _Scheduler)
monkeypatch.setattr(main, "get_session_local", lambda: _Session) monkeypatch.setattr(main, "get_session_local", lambda: _Session)
monkeypatch.setattr(main, "build_runtime_settings", lambda *_args: object()) monkeypatch.setattr(main, "build_runtime_settings", lambda *_args: runtime_settings)
monkeypatch.setattr(main, "apply_dsmr_subscription", lambda: None)
def apply_dsmr_subscription(settings=runtime_settings):
assert settings is runtime_settings
applied_dsmr_settings.append(settings)
monkeypatch.setattr(main, "apply_dsmr_subscription", apply_dsmr_subscription)
monkeypatch.setattr(main.mqtt_manager, "connect", lambda _settings: events.append("mqtt-start")) monkeypatch.setattr(main.mqtt_manager, "connect", lambda _settings: events.append("mqtt-start"))
monkeypatch.setattr(main.mqtt_manager, "disconnect", lambda: events.append("mqtt-stop")) monkeypatch.setattr(main.mqtt_manager, "disconnect", lambda: events.append("mqtt-stop"))
monkeypatch.setattr(main, "warmtelink_worker_manager", _Manager()) monkeypatch.setattr(main, "warmtelink_worker_manager", _Manager())
@@ -293,6 +300,7 @@ def test_lifespan_exception_still_shuts_serial_before_other_runtime_teardown(mon
pass pass
anyio.run(exercise) anyio.run(exercise)
assert applied_dsmr_settings == [runtime_settings]
assert events.index("serial-stop-close-join") < events.index("mqtt-stop") < events.index("scheduler-stop") assert events.index("serial-stop-close-join") < events.index("mqtt-stop") < events.index("scheduler-stop")