From 0e9416036aa4fe3a600a48aefe4212fa77191190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E6=B3=A5=E8=B1=86?= <1243352777@qq.com> Date: Sun, 26 Apr 2026 14:55:06 +0800 Subject: [PATCH] test: add unit tests for heartbeat stale threshold increase --- .../tools/test_heartbeat_stale_thresholds.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/tools/test_heartbeat_stale_thresholds.py diff --git a/tests/tools/test_heartbeat_stale_thresholds.py b/tests/tools/test_heartbeat_stale_thresholds.py new file mode 100644 index 0000000000..fb7db68efb --- /dev/null +++ b/tests/tools/test_heartbeat_stale_thresholds.py @@ -0,0 +1,35 @@ +"""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