case 并行(默认 3)后原 5 case 场景在取消请求到达前就跑完, 取消语义不再被观测到。扩到 30 case(10 波)保证取消窗口充分。
This commit is contained in:
parent
bd6efc3709
commit
0d074e5465
@ -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):
|
async def test_cancel_run(client, seeded_db, mock_channel):
|
||||||
# Seed a multi-case scenario so the run takes long enough to cancel.
|
# 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.models import Case, CaseType, Scenario
|
||||||
from agenteval.storage.repository import ScenarioRepository
|
from agenteval.storage.repository import ScenarioRepository
|
||||||
multi = Scenario(
|
multi = Scenario(
|
||||||
id="s-long", name="long-scenario",
|
id="s-long", name="long-scenario",
|
||||||
cases=[
|
cases=[
|
||||||
Case(id=f"lc{i}", type=CaseType.SINGLE, messages=[f"m{i}"])
|
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)
|
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()
|
final = (await client.get(f"/api/runs/{run_id}")).json()
|
||||||
assert final["status"] == "failed"
|
assert final["status"] == "failed"
|
||||||
assert final["summary"]["error"]["code"] == "cancelled_by_user"
|
assert final["summary"]["error"]["code"] == "cancelled_by_user"
|
||||||
# Not all 5 cases should have run.
|
# Not all 30 cases should have run.
|
||||||
assert mock_channel.send_calls < 5
|
assert mock_channel.send_calls < 30
|
||||||
|
|
||||||
|
|
||||||
async def test_get_run_logs(client, seeded_db, mock_channel):
|
async def test_get_run_logs(client, seeded_db, mock_channel):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user