M8-R04A: fix fake discovery receive clock

This commit is contained in:
2026-08-24 06:45:31 +02:00
parent 3beeb5a461
commit 18083822ea
+10 -3
View File
@@ -695,15 +695,16 @@ def test_real_warmtelink_discovery_waits_for_admission_and_keeps_its_serial_owne
): ):
"""A rejected candidate is neither a discovery success nor exposed metadata.""" """A rejected candidate is neither a discovery success nor exposed metadata."""
from app.integrations.p1 import dsmr_crc16 from app.integrations.p1 import dsmr_crc16
from app.services.warmtelink_ingest import WarmteLinkIngestor
from app.services import warmtelink_worker from app.services import warmtelink_worker
from app.services.warmtelink_worker import WarmteLinkWorkerManager from app.services.warmtelink_worker import WarmteLinkWorker, WarmteLinkWorkerManager
engine = create_engine(auth_database["app_url"], connect_args={"check_same_thread": False}) engine = create_engine(auth_database["app_url"], connect_args={"check_same_thread": False})
received_at = datetime(2026, 8, 22, 10, 0, 30, tzinfo=UTC) # 12:00:30 Europe/Amsterdam.
with Session(engine) as session: with Session(engine) as session:
now = datetime.now(UTC)
source = MeterSource( source = MeterSource(
name="Serial", kind="warmtelink_serial", enabled=True, config={"path": "/dev/fake"}, name="Serial", kind="warmtelink_serial", enabled=True, config={"path": "/dev/fake"},
created_at=now, updated_at=now, created_at=received_at, updated_at=received_at,
) )
session.add(source) session.add(source)
session.commit() session.commit()
@@ -745,6 +746,12 @@ def test_real_warmtelink_discovery_waits_for_admission_and_keeps_its_serial_owne
monkeypatch.setattr(warmtelink_worker, "_DISCOVERY_WAIT_SECONDS", 0.02) monkeypatch.setattr(warmtelink_worker, "_DISCOVERY_WAIT_SECONDS", 0.02)
manager = WarmteLinkWorkerManager( manager = WarmteLinkWorkerManager(
session_factory=lambda: Session(engine), serial_factory=lambda _config: FakeReadOnlySerial(), session_factory=lambda: Session(engine), serial_factory=lambda _config: FakeReadOnlySerial(),
worker_factory=lambda source_id, config, **kwargs: WarmteLinkWorker(
source_id,
config,
ingestor=WarmteLinkIngestor(clock=lambda: received_at),
**kwargs,
),
) )
manager.reconcile() manager.reconcile()
serial = FakeReadOnlySerial.instances[0] serial = FakeReadOnlySerial.instances[0]