11"""Tests for OpenAI Agents SDK integration"""
22
3- from collections .abc import Callable
4-
53import pytest
4+ from agents import FunctionTool
65
76from stackone_ai import StackOneToolSet
87
@@ -23,9 +22,11 @@ def test_single_tool_openai_agents_conversion(toolset: StackOneToolSet) -> None:
2322 tool = tools .tools [0 ]
2423 openai_agents_tool = tool .to_openai_agents ()
2524
26- # Verify it's a callable function tool
27- assert callable (openai_agents_tool )
28- assert isinstance (openai_agents_tool , Callable )
25+ # Verify it's a FunctionTool object
26+ assert isinstance (openai_agents_tool , FunctionTool )
27+ assert hasattr (openai_agents_tool , "name" )
28+ assert hasattr (openai_agents_tool , "description" )
29+ assert hasattr (openai_agents_tool , "on_invoke_tool" )
2930
3031
3132def test_tools_openai_agents_conversion (toolset : StackOneToolSet ) -> None :
@@ -39,8 +40,8 @@ def test_tools_openai_agents_conversion(toolset: StackOneToolSet) -> None:
3940
4041 # Verify conversion
4142 assert len (openai_agents_tools ) == len (tools .tools )
42- assert all (callable (tool ) for tool in openai_agents_tools )
43- assert all (isinstance (tool , Callable ) for tool in openai_agents_tools )
43+ assert all (isinstance (tool , FunctionTool ) for tool in openai_agents_tools )
44+ assert all (hasattr (tool , "on_invoke_tool" ) for tool in openai_agents_tools )
4445
4546
4647@pytest .mark .asyncio
@@ -54,9 +55,10 @@ async def test_openai_agents_tool_execution(toolset: StackOneToolSet) -> None:
5455 tool = tools .tools [0 ]
5556 openai_agents_tool = tool .to_openai_agents ()
5657
57- # Test that the tool function exists and is callable
58- assert callable (openai_agents_tool )
59- assert callable (openai_agents_tool )
58+ # Test that the tool function exists and has on_invoke_tool method
59+ assert isinstance (openai_agents_tool , FunctionTool )
60+ assert hasattr (openai_agents_tool , "on_invoke_tool" )
61+ assert openai_agents_tool .name == tool .name
6062
6163
6264def test_openai_agents_tool_attributes (toolset : StackOneToolSet ) -> None :
@@ -70,9 +72,11 @@ def test_openai_agents_tool_attributes(toolset: StackOneToolSet) -> None:
7072 openai_agents_tool = tool .to_openai_agents ()
7173
7274 # Verify the tool has required attributes for function_tool
73- assert callable (openai_agents_tool )
74- # The function_tool decorator should preserve the original function properties
75- assert hasattr (openai_agents_tool , "__name__" ) or hasattr (openai_agents_tool , "__qualname__" )
75+ assert isinstance (openai_agents_tool , FunctionTool )
76+ assert hasattr (openai_agents_tool , "name" )
77+ assert hasattr (openai_agents_tool , "description" )
78+ assert openai_agents_tool .name == tool .name
79+ assert openai_agents_tool .description == tool .description
7680
7781
7882def test_openai_agents_tool_naming (toolset : StackOneToolSet ) -> None :
@@ -86,8 +90,8 @@ def test_openai_agents_tool_naming(toolset: StackOneToolSet) -> None:
8690 openai_agents_tool = tool .to_openai_agents ()
8791
8892 # Verify function tool exists and is properly named
89- assert callable (openai_agents_tool )
90- # The function should be a decorated function with proper metadata
93+ assert isinstance (openai_agents_tool , FunctionTool )
94+ assert openai_agents_tool . name == tool . name
9195 original_name = tool .name
9296 assert original_name is not None
9397 assert len (original_name ) > 0
0 commit comments