Add tool functionality test script
- Created comprehensive test for all 4 tools - Verifies write, read, edit, and bash functionality - All tests pass successfully - Demonstrates PicoGent's core capabilities
This commit is contained in:
parent
d18311a0fd
commit
ca98d75075
82
test_tools.py
Normal file
82
test_tools.py
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Test script to verify PicoGent tools functionality without requiring API key
|
||||||
|
"""
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
sys.path.insert(0, '.')
|
||||||
|
|
||||||
|
from picogent.tools.registry import ToolRegistry
|
||||||
|
from picogent.tools.read import ReadTool
|
||||||
|
from picogent.tools.write import WriteTool
|
||||||
|
from picogent.tools.edit import EditTool
|
||||||
|
from picogent.tools.bash import BashTool
|
||||||
|
|
||||||
|
|
||||||
|
async def test_tools():
|
||||||
|
"""Test all tools individually"""
|
||||||
|
print("🔧 Testing PicoGent Tools\n")
|
||||||
|
|
||||||
|
# Initialize tools
|
||||||
|
registry = ToolRegistry()
|
||||||
|
registry.register(ReadTool())
|
||||||
|
registry.register(WriteTool())
|
||||||
|
registry.register(EditTool())
|
||||||
|
registry.register(BashTool())
|
||||||
|
|
||||||
|
print(f"✓ Registered {len(registry.get_all_tools())} tools")
|
||||||
|
|
||||||
|
# Test 1: Write a file
|
||||||
|
print("\n📝 Test 1: Writing a file...")
|
||||||
|
result = await registry.execute_tool("write", {
|
||||||
|
"file_path": "test_hello.py",
|
||||||
|
"content": "print('Hello from PicoGent!')\nprint('This is a test file.')\n"
|
||||||
|
})
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
# Test 2: Read the file
|
||||||
|
print("\n📖 Test 2: Reading the file...")
|
||||||
|
result = await registry.execute_tool("read", {
|
||||||
|
"file_path": "test_hello.py"
|
||||||
|
})
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
# Test 3: Edit the file
|
||||||
|
print("\n✏️ Test 3: Editing the file...")
|
||||||
|
result = await registry.execute_tool("edit", {
|
||||||
|
"file_path": "test_hello.py",
|
||||||
|
"old_string": "This is a test file.",
|
||||||
|
"new_string": "This file was edited by PicoGent!"
|
||||||
|
})
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
# Test 4: Read the edited file
|
||||||
|
print("\n📖 Test 4: Reading the edited file...")
|
||||||
|
result = await registry.execute_tool("read", {
|
||||||
|
"file_path": "test_hello.py"
|
||||||
|
})
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
# Test 5: Run the Python file
|
||||||
|
print("\n🚀 Test 5: Executing the Python file...")
|
||||||
|
result = await registry.execute_tool("bash", {
|
||||||
|
"command": "python3 test_hello.py",
|
||||||
|
"timeout": 5
|
||||||
|
})
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
# Test 6: Clean up
|
||||||
|
print("\n🧹 Test 6: Cleaning up...")
|
||||||
|
result = await registry.execute_tool("bash", {
|
||||||
|
"command": "rm -f test_hello.py",
|
||||||
|
"timeout": 5
|
||||||
|
})
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
print("\n✅ All tests completed!")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(test_tools())
|
||||||
Loading…
Reference in New Issue
Block a user