| |
|
| | """
|
| | Test script to verify MCP integration functionality
|
| | """
|
| |
|
| | import sys
|
| | import os
|
| | sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
| |
|
| | def test_mcp_import():
|
| | """Test if MCP tools can be imported correctly"""
|
| | try:
|
| | from src.mcp.mcp_tools import GradioMCPTools
|
| | print("✅ Successfully imported GradioMCPTools")
|
| | return True
|
| | except ImportError as e:
|
| | print(f"❌ Failed to import GradioMCPTools: {e}")
|
| | return False
|
| |
|
| | def test_game_facade_methods():
|
| | """Test if GameFacade has all required methods for MCP"""
|
| | try:
|
| | from src.facades.game_facade import GameFacade
|
| | from src.core.game_engine import GameEngine
|
| |
|
| |
|
| | engine = GameEngine()
|
| | facade = GameFacade(engine)
|
| |
|
| |
|
| | required_methods = [
|
| | 'get_recent_chat_messages',
|
| | 'get_recent_world_events',
|
| | 'get_available_npcs',
|
| | 'get_raw_world_data'
|
| | ]
|
| |
|
| | for method_name in required_methods:
|
| | if hasattr(facade, method_name):
|
| | print(f"✅ Method {method_name} exists")
|
| | else:
|
| | print(f"❌ Method {method_name} missing")
|
| | return False
|
| |
|
| |
|
| | if hasattr(facade, 'game_engine'):
|
| | print("✅ game_engine property exists")
|
| | else:
|
| | print("❌ game_engine property missing")
|
| | return False
|
| |
|
| | return True
|
| |
|
| | except Exception as e:
|
| | print(f"❌ Error testing GameFacade: {e}")
|
| | return False
|
| |
|
| | def test_raw_world_data():
|
| | """Test raw world data functionality"""
|
| | try:
|
| | from src.facades.game_facade import GameFacade
|
| | from src.core.game_engine import GameEngine
|
| |
|
| |
|
| | engine = GameEngine()
|
| | facade = GameFacade(engine)
|
| |
|
| |
|
| | raw_data = facade.get_raw_world_data()
|
| |
|
| | if isinstance(raw_data, dict):
|
| | print("✅ get_raw_world_data returns dict")
|
| |
|
| |
|
| | required_keys = ['world_state', 'players', 'npcs', 'locations']
|
| | for key in required_keys:
|
| | if key in raw_data:
|
| | print(f"✅ Raw data contains {key}")
|
| | else:
|
| | print(f"❌ Raw data missing {key}")
|
| |
|
| | else:
|
| | print(f"❌ get_raw_world_data returns {type(raw_data)}, expected dict")
|
| | return False
|
| |
|
| | return True
|
| |
|
| | except Exception as e:
|
| | print(f"❌ Error testing raw world data: {e}")
|
| | return False
|
| |
|
| | if __name__ == "__main__":
|
| | print("🧪 Testing MCP Integration...")
|
| | print("=" * 50)
|
| |
|
| | tests = [
|
| | ("MCP Import", test_mcp_import),
|
| | ("GameFacade Methods", test_game_facade_methods),
|
| | ("Raw World Data", test_raw_world_data)
|
| | ]
|
| |
|
| | passed = 0
|
| | total = len(tests)
|
| |
|
| | for test_name, test_func in tests:
|
| | print(f"\n🔍 Testing {test_name}...")
|
| | if test_func():
|
| | passed += 1
|
| | print(f"✅ {test_name} PASSED")
|
| | else:
|
| | print(f"❌ {test_name} FAILED")
|
| |
|
| | print("\n" + "=" * 50)
|
| | print(f"📊 Results: {passed}/{total} tests passed")
|
| |
|
| | if passed == total:
|
| | print("🎉 All tests passed! MCP integration is working correctly.")
|
| | else:
|
| | print("⚠️ Some tests failed. Please check the issues above.")
|
| |
|