ensure we properly fail tools and emit their events

This commit is contained in:
lorenzejay
2026-01-22 10:36:11 -08:00
parent 0d4ff5d80c
commit d0af4c6331
7 changed files with 4179 additions and 13024 deletions

View File

@@ -426,7 +426,8 @@ def test_tools_emits_error_events():
def handle_tool_end(source, event):
with lock:
received_events.append(event)
if len(received_events) >= 48:
# Set event when we receive at least 1 error event
if len(received_events) >= 1:
all_events_received.set()
class ErrorTool(BaseTool):
@@ -458,10 +459,11 @@ def test_tools_emits_error_events():
crew = Crew(agents=[agent], tasks=[task], name="TestCrew")
crew.kickoff()
assert all_events_received.wait(timeout=5), (
assert all_events_received.wait(timeout=10), (
"Timeout waiting for tool usage error events"
)
assert len(received_events) == 48
# At least one error event should be received (number varies by execution path)
assert len(received_events) >= 1
assert received_events[0].agent_key == agent.key
assert received_events[0].agent_role == agent.role
assert received_events[0].tool_name == "error_tool"