hermes-agent/tests/tools/test_heartbeat_stale_thresholds.py

35 lines
1.5 KiB
Python

"""Tests for delegate heartbeat stale threshold configuration."""
import pytest
class TestHeartbeatStaleThresholds:
"""Verify the heartbeat stale threshold constants are correct."""
def test_idle_cycles_value(self):
"""IDLE stale cycles should be 15 (15 * 30s = 450s)."""
from tools.delegate_tool import _HEARTBEAT_STALE_CYCLES_IDLE
assert _HEARTBEAT_STALE_CYCLES_IDLE == 15
def test_in_tool_cycles_value(self):
"""IN_TOOL stale cycles should be 40 (40 * 30s = 1200s)."""
from tools.delegate_tool import _HEARTBEAT_STALE_CYCLES_IN_TOOL
assert _HEARTBEAT_STALE_CYCLES_IN_TOOL == 40
def test_idle_timeout_seconds(self):
"""Effective idle stale timeout: 15 * 30 = 450s (> typical LLM response time)."""
from tools.delegate_tool import _HEARTBEAT_STALE_CYCLES_IDLE, _HEARTBEAT_INTERVAL
effective = _HEARTBEAT_STALE_CYCLES_IDLE * _HEARTBEAT_INTERVAL
assert effective == 450
assert effective > 300 # Must be > 5 minutes for slow LLM responses
def test_in_tool_timeout_seconds(self):
"""Effective in-tool stale timeout: 40 * 30 = 1200s (= 20 minutes)."""
from tools.delegate_tool import _HEARTBEAT_STALE_CYCLES_IN_TOOL, _HEARTBEAT_INTERVAL
effective = _HEARTBEAT_STALE_CYCLES_IN_TOOL * _HEARTBEAT_INTERVAL
assert effective == 1200
def test_interval_unchanged(self):
"""Heartbeat interval should remain 30s."""
from tools.delegate_tool import _HEARTBEAT_INTERVAL
assert _HEARTBEAT_INTERVAL == 30