65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Basic functionality test for PicoGent
|
|
"""
|
|
|
|
import asyncio
|
|
import tempfile
|
|
import os
|
|
from picogent import Config, Session, run_agent
|
|
|
|
|
|
async def test_basic_functionality():
|
|
"""Test basic agent functionality"""
|
|
print("🧪 Testing PicoGent basic functionality...")
|
|
|
|
# Create a test config
|
|
config = Config(
|
|
provider="anthropic",
|
|
model="claude-sonnet-4-20250514",
|
|
api_key="test-key", # Fake key for testing
|
|
max_tokens=1000,
|
|
max_iterations=3,
|
|
workspace="."
|
|
)
|
|
|
|
print("✅ Config created successfully")
|
|
|
|
# Test session creation
|
|
session = Session()
|
|
session.add_message("user", "Hello, world!")
|
|
session.add_message("assistant", "Hello! How can I help you?")
|
|
|
|
messages = session.get_messages()
|
|
assert len(messages) == 2
|
|
assert messages[0]["role"] == "user"
|
|
assert messages[1]["role"] == "assistant"
|
|
|
|
print("✅ Session management working")
|
|
|
|
# Test tools import and registration
|
|
from picogent.tools import registry, ReadTool, WriteTool, EditTool, BashTool
|
|
|
|
# Should have some tools registered
|
|
tools = registry.list_tools()
|
|
print(f"✅ {len(tools)} tools registered: {[t.name for t in tools]}")
|
|
|
|
# Test tool definitions
|
|
definitions = registry.get_tool_definitions()
|
|
assert len(definitions) > 0
|
|
assert all("name" in tool for tool in definitions)
|
|
|
|
print("✅ Tool definitions generated successfully")
|
|
|
|
# Test providers
|
|
from picogent.providers import AnthropicProvider
|
|
provider = AnthropicProvider(config)
|
|
|
|
print("✅ Anthropic provider created successfully")
|
|
|
|
print("✅ All basic tests passed!")
|
|
print("\n📝 Note: To test actual API functionality, set a valid ANTHROPIC_API_KEY environment variable")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(test_basic_functionality()) |