M8-R04A: fix fake discovery receive clock
This commit is contained in:
@@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user