mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 01:21:59 +00:00
数据事件触发:去抖中的等待状态补一条断言(几次在等、窗口何时结束)
pending_for 给接口的 trigger_state:派给任务、还在去抖窗口里的条数和窗口结束的时刻。原来只在没有等待时断言过 due_at 为空, 这里在两条事件落进同一个窗口、还没到时刻时核对 waiting=2、due_at 是第一条发生之后 60 秒。 验证:后端全量 14467 通过(-n 8)。
This commit is contained in:
@@ -279,6 +279,9 @@ async def test_debounce_merges_events_in_the_window():
|
||||
# 窗口还没过:只派、不发
|
||||
assert await outbox.dispatch_due(t0 + timedelta(seconds=40)) == []
|
||||
assert [d.status for d in await deliveries(sid)] == ["pending", "pending"]
|
||||
async with SessionLocal() as session:
|
||||
state = await outbox.pending_for(session, await session.get(Schedule, sid))
|
||||
assert state == {"events": 0, "waiting": 2, "due_at": (t0 + timedelta(seconds=60)).isoformat()}
|
||||
e3 = await put_event("workflow.finished", upstream, payload("run-3"), t0 + timedelta(seconds=70))
|
||||
[fire] = await outbox.dispatch_due(t0 + timedelta(seconds=61))
|
||||
assert fire.fire_at == t0 + timedelta(seconds=60) and fire.kind == "event"
|
||||
|
||||
Reference in New Issue
Block a user