test(runs): 取消测试扩至 30 case 适配并发执行
All checks were successful
CI / test (push) Successful in 4m3s

case 并行(默认 3)后原 5 case 场景在取消请求到达前就跑完,
取消语义不再被观测到。扩到 30 case(10 波)保证取消窗口充分。
This commit is contained in:
sinohqb 2026-08-24 23:38:53 +08:00
parent bd6efc3709
commit 0d074e5465

View File

@ -135,13 +135,15 @@ async def test_start_run_then_get(client, seeded_db, mock_channel):
async def test_cancel_run(client, seeded_db, mock_channel):
# Seed a multi-case scenario so the run takes long enough to cancel.
# Cases run 3-concurrent, so 30 cases ≈ 10 waves × reply_delay — comfortably
# longer than the pre-cancel window below.
from agenteval.models import Case, CaseType, Scenario
from agenteval.storage.repository import ScenarioRepository
multi = Scenario(
id="s-long", name="long-scenario",
cases=[
Case(id=f"lc{i}", type=CaseType.SINGLE, messages=[f"m{i}"])
for i in range(5)
for i in range(30)
],
)
ScenarioRepository(seeded_db).create(multi)
@ -170,8 +172,8 @@ async def test_cancel_run(client, seeded_db, mock_channel):
final = (await client.get(f"/api/runs/{run_id}")).json()
assert final["status"] == "failed"
assert final["summary"]["error"]["code"] == "cancelled_by_user"
# Not all 5 cases should have run.
assert mock_channel.send_calls < 5
# Not all 30 cases should have run.
assert mock_channel.send_calls < 30
async def test_get_run_logs(client, seeded_db, mock_channel):