from taskweaver.memory.plugin import PluginEntry, PluginParameter, PluginSpec def test_function_formatting(): plugin = PluginEntry( name="test", impl="test", spec=PluginSpec( name="test", description="test", args=[ PluginParameter( name="arg1", type="string", description="arg1", required=True, ), PluginParameter( name="arg2", type="integer", description="arg2", required=False, ), PluginParameter( name="arg3", type="float", description="arg3", required=False, ), PluginParameter( name="arg4", type="boolean", description="arg4", required=False, ), PluginParameter( name="arg5", type="none", description="arg5", required=False, ), ], ), config={"test_key": "test_val"}, required=False, enabled=True, plugin_only=True, ) assert plugin.format_function_calling() == { "type": "function", "function": { "name": "test", "description": "test", "parameters": { "type": "object", "properties": { "arg1": {"type": "string", "description": "arg1"}, "arg2": {"type": "integer", "description": "arg2"}, "arg3": {"type": "number", "description": "arg3"}, "arg4": {"type": "boolean", "description": "arg4"}, "arg5": {"type": "null", "description": "arg5"}, }, "required": ["arg1"], }, }, }