Files
openswarm/backend/tests/test_agent_active_time.py
T

27 lines
917 B
Python

"""ENG-189: agent_active_ms means time the agent was producing, not turn wall-clock. A stalled
gap between events books at most the 30s cap, so one wedged turn can't be 92% of the metric."""
from backend.apps.agents.manager.streaming.state import TurnState
def p_feed(turn: TurnState, ts: float) -> None:
if turn.last_event_ts is not None:
turn.active_ms += int(min(ts - turn.last_event_ts, 30.0) * 1000)
turn.last_event_ts = ts
def test_stalled_gap_books_the_cap_not_the_wall():
turn = TurnState()
p_feed(turn, 1000.0)
p_feed(turn, 1001.0) # 1s of work
p_feed(turn, 4601.0) # a 1-HOUR stall books 30s, not 3600s
p_feed(turn, 4602.5) # 1.5s more work
assert turn.active_ms == 1000 + 30_000 + 1500
def test_busy_turn_books_real_time():
turn = TurnState()
for i in range(11):
p_feed(turn, 100.0 + i * 0.5)
assert turn.active_ms == 5_000