Files
hermes-agent/tests/tools/test_heartbeat_stale_thresholds.py
T
红尘 d73ff9b0fb
Deploy Site / deploy-vercel (push) Has been cancelled
Deploy Site / deploy-docs (push) Has been cancelled
Docker / shell lint / Lint Dockerfile (hadolint) (push) Has been cancelled
Docker / shell lint / Lint docker/ shell scripts (shellcheck) (push) Has been cancelled
Docker Build and Publish / build-amd64 (push) Has been cancelled
Docker Build and Publish / build-arm64 (push) Has been cancelled
Lint (ruff + ty) / ruff + ty diff (push) Has been cancelled
Lint (ruff + ty) / ruff enforcement (blocking) (push) Has been cancelled
Lint (ruff + ty) / Windows footguns (blocking) (push) Has been cancelled
Nix Lockfile Fix / auto-fix-main (push) Has been cancelled
Nix Lockfile Fix / fix (push) Has been cancelled
Nix / nix (macos-latest) (push) Has been cancelled
Nix / nix (ubuntu-latest) (push) Has been cancelled
OSV-Scanner / Scan lockfiles (push) Has been cancelled
Build Skills Index / build-index (push) Has been cancelled
Tests / test (1) (push) Has been cancelled
Tests / test (2) (push) Has been cancelled
Tests / test (3) (push) Has been cancelled
Tests / test (4) (push) Has been cancelled
Tests / test (5) (push) Has been cancelled
Tests / test (6) (push) Has been cancelled
Tests / e2e (push) Has been cancelled
uv.lock check / uv lock --check (push) Has been cancelled
Docker Build and Publish / merge (push) Has been cancelled
Build Skills Index / trigger-deploy (push) Has been cancelled
Tests / save-durations (push) Has been cancelled
Initial import of NousResearch/hermes-agent
2026-05-31 09:36:58 +08:00

35 lines
1.5 KiB
Python

"""Tests for delegate heartbeat stale threshold configuration."""
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