OffGridSchedula / tests /test_events.py
ParetoOptimal's picture
Initial Commit
0366d65
Raw
History Blame Contribute Delete
1.13 kB
from server import events as bus
from server.agent import run_agent_stream
def test_emit_and_recent():
before = len(bus.recent(999))
bus.emit("model", "unit test", latency_ms=12)
after = bus.recent(999)
assert len(after) >= before + 1
assert after[0]["stage"] == "model" and after[0]["latency_ms"] == 12
def test_run_scope_groups_events():
with bus.run_scope("unit") as rid:
bus.emit("model", "a")
bus.emit("decision", "b")
runs = dict(bus.recent_runs(50))
assert rid in runs
assert len(runs[rid]) == 2
def test_streamed_run_produces_trace():
for _ in run_agent_stream("lunch 1pm tomorrow", images=["data:image/png;base64,xx"]):
pass
# last run should include vision + model + decision stages
_, evs = bus.recent_runs(1)[0]
stages = {e["stage"] for e in evs}
assert {"vision", "model", "decision"} <= stages
def test_metrics_and_stage_counts_shapes():
m = bus.metrics()
assert {"messages", "events_created", "conflicts", "model_calls"} <= set(m)
counts = bus.stage_counts()
assert {d["stage"] for d in counts} == set(bus.STAGES)