第一次提交
This commit is contained in:
207
test_import.py
Normal file
207
test_import.py
Normal file
@@ -0,0 +1,207 @@
|
||||
"""
|
||||
Quick Test Script
|
||||
Verifies all modules can be imported and initialized correctly
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
def test_imports():
|
||||
"""Test all module imports"""
|
||||
print("=" * 60)
|
||||
print("Testing Module Imports...")
|
||||
print("=" * 60)
|
||||
|
||||
try:
|
||||
from agents_config import create_agents, TASK_TEMPLATES, QWEN_MODEL_CONFIG
|
||||
print("[OK] agents_config")
|
||||
except Exception as e:
|
||||
print(f"[FAIL] agents_config - {e}")
|
||||
return False
|
||||
|
||||
try:
|
||||
from stream_manager import stream_manager, StreamEvent, TaskStreamQueue
|
||||
print("[OK] stream_manager")
|
||||
except Exception as e:
|
||||
print(f"[FAIL] stream_manager - {e}")
|
||||
return False
|
||||
|
||||
try:
|
||||
from crew_factory import CrewFactory, SSECrewExecutor, CrewExecutionLogger
|
||||
print("[OK] crew_factory")
|
||||
except Exception as e:
|
||||
print(f"[FAIL] crew_factory - {e}")
|
||||
return False
|
||||
|
||||
try:
|
||||
from main import app
|
||||
print("[OK] main")
|
||||
except Exception as e:
|
||||
print(f"[FAIL] main - {e}")
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def test_agents():
|
||||
"""Test Agent creation"""
|
||||
print("\n" + "=" * 60)
|
||||
print("Testing Agent Creation...")
|
||||
print("=" * 60)
|
||||
|
||||
try:
|
||||
from agents_config import create_agents, get_product_manager_agent
|
||||
# Test creating a single agent without LLM configuration
|
||||
agent = get_product_manager_agent()
|
||||
|
||||
print(f"[OK] Agent structure created:")
|
||||
print(f" - Role: {agent.role}")
|
||||
print(f" - Goal: {agent.goal[:50]}...")
|
||||
print(f"\n[NOTE] Full agent initialization requires DASHSCOPE_API_KEY")
|
||||
print(f" Set environment variable before running the server.")
|
||||
|
||||
return True
|
||||
except Exception as e:
|
||||
# This is expected if API key is not configured
|
||||
error_msg = str(e)
|
||||
if "API_KEY" in error_msg or "provider" in error_msg.lower():
|
||||
print(f"[SKIP] Agent creation skipped (API key not configured)")
|
||||
print(f" Set DASHSCOPE_API_KEY environment variable to enable.")
|
||||
return True # Not a failure, just needs configuration
|
||||
else:
|
||||
print(f"[FAIL] Agent creation failed: {e}")
|
||||
return False
|
||||
|
||||
|
||||
def test_stream_manager():
|
||||
"""Test stream manager"""
|
||||
print("\n" + "=" * 60)
|
||||
print("Testing Stream Manager...")
|
||||
print("=" * 60)
|
||||
|
||||
try:
|
||||
import asyncio
|
||||
from stream_manager import stream_manager, StreamEvent
|
||||
|
||||
async def test():
|
||||
# Create test stream
|
||||
task_id = "test-123"
|
||||
await stream_manager.create_stream(task_id)
|
||||
|
||||
# Publish test event
|
||||
await stream_manager.publish_event(
|
||||
task_id=task_id,
|
||||
event_type="test",
|
||||
agent="TestAgent",
|
||||
content="This is a test event"
|
||||
)
|
||||
|
||||
# Get stream
|
||||
stream = await stream_manager.get_stream(task_id)
|
||||
if stream:
|
||||
event = await stream.get()
|
||||
if event:
|
||||
print(f"[OK] Event format: {event.to_dict()}")
|
||||
await stream_manager.close_stream(task_id)
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
result = asyncio.get_event_loop().run_until_complete(test())
|
||||
if result:
|
||||
print("[OK] Stream manager test passed")
|
||||
return True
|
||||
else:
|
||||
print("[FAIL] Stream manager test failed")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"[FAIL] Stream manager test failed: {e}")
|
||||
return False
|
||||
|
||||
|
||||
def test_api_endpoints():
|
||||
"""Test API endpoint registration"""
|
||||
print("\n" + "=" * 60)
|
||||
print("Testing API Endpoints...")
|
||||
print("=" * 60)
|
||||
|
||||
try:
|
||||
from main import app
|
||||
|
||||
routes = [route.path for route in app.routes]
|
||||
|
||||
required_endpoints = [
|
||||
"/api/run_task",
|
||||
"/api/stream/{task_id}",
|
||||
"/api/task/{task_id}/status",
|
||||
"/api/streams",
|
||||
"/health",
|
||||
"/test-ui"
|
||||
]
|
||||
|
||||
print(f"[OK] Registered endpoints ({len(routes)} total):")
|
||||
for endpoint in required_endpoints:
|
||||
found = False
|
||||
for r in routes:
|
||||
if endpoint.split('{')[0].rstrip('/') in r:
|
||||
print(f" [OK] {endpoint}")
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
print(f" [?] {endpoint} (may use different format)")
|
||||
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"[FAIL] API endpoint test failed: {e}")
|
||||
return False
|
||||
|
||||
|
||||
def main():
|
||||
"""Run all tests"""
|
||||
print("\n" + "=" * 60)
|
||||
print("Multi-Agent System Module Test")
|
||||
print("=" * 60 + "\n")
|
||||
|
||||
results = []
|
||||
|
||||
# Test imports
|
||||
results.append(("Module Imports", test_imports()))
|
||||
|
||||
# Test Agent creation
|
||||
results.append(("Agent Creation", test_agents()))
|
||||
|
||||
# Test stream manager
|
||||
results.append(("Stream Manager", test_stream_manager()))
|
||||
|
||||
# Test API endpoints
|
||||
results.append(("API Endpoints", test_api_endpoints()))
|
||||
|
||||
# Summary
|
||||
print("\n" + "=" * 60)
|
||||
print("Test Summary")
|
||||
print("=" * 60)
|
||||
|
||||
for name, passed in results:
|
||||
status = "[OK]" if passed else "[FAIL]"
|
||||
print(f"{status} - {name}")
|
||||
|
||||
all_passed = all(result[1] for result in results)
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
if all_passed:
|
||||
print("[SUCCESS] All tests passed! System is ready.")
|
||||
print("\nTo start the server:")
|
||||
print(" python main.py")
|
||||
print("\nTest UI:")
|
||||
print(" http://localhost:8000/test-ui")
|
||||
print("\nAPI Documentation:")
|
||||
print(" http://localhost:8000/docs")
|
||||
else:
|
||||
print("[FAILURE] Some tests failed. Please check error messages.")
|
||||
sys.exit(1)
|
||||
print("=" * 60)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user