chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
"""Verify that all public exception classes are re-exported from the top-level agents package."""
|
||||
|
||||
from typing import Any, cast
|
||||
|
||||
import pytest
|
||||
|
||||
import agents
|
||||
from agents import exceptions as exceptions_module
|
||||
|
||||
|
||||
def test_mcp_tool_cancellation_error_is_exported_at_top_level() -> None:
|
||||
# MCPToolCancellationError is a public exception users may need to catch from MCP tool
|
||||
# invocations. It must be importable from `agents` like its sibling exception types.
|
||||
from agents import MCPToolCancellationError
|
||||
|
||||
assert MCPToolCancellationError is exceptions_module.MCPToolCancellationError
|
||||
assert "MCPToolCancellationError" in agents.__all__
|
||||
|
||||
|
||||
def test_all_public_exception_classes_are_reexported() -> None:
|
||||
# Every concrete exception class subclassing AgentsException in agents.exceptions
|
||||
# should be re-exported from the top-level `agents` package, so users have a
|
||||
# single import path for catching SDK errors.
|
||||
public_exception_names = [
|
||||
name
|
||||
for name, obj in vars(exceptions_module).items()
|
||||
if isinstance(obj, type)
|
||||
and issubclass(obj, exceptions_module.AgentsException)
|
||||
and not name.startswith("_")
|
||||
]
|
||||
|
||||
for name in public_exception_names:
|
||||
assert hasattr(agents, name), f"agents.{name} is not re-exported from agents package"
|
||||
assert name in agents.__all__, f"{name} is missing from agents.__all__"
|
||||
|
||||
|
||||
def test_run_error_details_str_uses_pretty_printer(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
details = exceptions_module.RunErrorDetails(
|
||||
input="hello",
|
||||
new_items=[],
|
||||
raw_responses=[],
|
||||
last_agent=cast(Any, object()),
|
||||
context_wrapper=cast(Any, object()),
|
||||
input_guardrail_results=[],
|
||||
output_guardrail_results=[],
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
exceptions_module,
|
||||
"pretty_print_run_error_details",
|
||||
lambda value: "formatted details" if value is details else "unexpected",
|
||||
)
|
||||
|
||||
assert str(details) == "formatted details"
|
||||
Reference in New Issue
Block a user