mirror of
https://github.com/latinogino/dolibarr-mcp.git
synced 2026-04-15 23:15:35 +02:00
128 lines
3.5 KiB
Python
128 lines
3.5 KiB
Python
"""Test the ultra-simple Dolibarr MCP server - zero compiled dependencies."""
|
|
|
|
import sys
|
|
import os
|
|
|
|
# Test imports without try/catch to see exactly what fails
|
|
print("Testing ultra-simple imports...")
|
|
print(f"Python version: {sys.version}")
|
|
print("")
|
|
|
|
# Test 1: Standard library
|
|
print("✅ Standard library imports:")
|
|
import json
|
|
import logging
|
|
import os
|
|
import sys
|
|
from typing import Dict, List, Optional, Any
|
|
print(" json, logging, os, sys, typing - OK")
|
|
|
|
# Test 2: Basic packages
|
|
print("✅ Basic package imports:")
|
|
try:
|
|
import requests
|
|
print(f" requests {requests.__version__} - OK")
|
|
except ImportError as e:
|
|
print(f" ❌ requests failed: {e}")
|
|
print(" Please run: setup_ultra.bat")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import dotenv
|
|
print(f" python-dotenv - OK")
|
|
except ImportError:
|
|
print(" ⚠️ python-dotenv not available, using manual .env loading")
|
|
|
|
try:
|
|
import click
|
|
print(f" click {click.__version__} - OK")
|
|
except ImportError:
|
|
print(" ⚠️ click not available, basic CLI will work")
|
|
|
|
print("")
|
|
|
|
# Test 3: Our ultra-simple modules
|
|
print("✅ Testing ultra-simple modules:")
|
|
|
|
# Add src to path
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))
|
|
|
|
try:
|
|
from src.dolibarr_mcp.simple_client import SimpleConfig, SimpleDolibarrClient, SimpleDolibarrAPIError
|
|
print(" simple_client module - OK")
|
|
except ImportError as e:
|
|
print(f" ❌ simple_client failed: {e}")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
from src.dolibarr_mcp.ultra_simple_server import UltraSimpleServer
|
|
print(" ultra_simple_server module - OK")
|
|
except ImportError as e:
|
|
print(f" ❌ ultra_simple_server failed: {e}")
|
|
sys.exit(1)
|
|
|
|
print("")
|
|
|
|
# Test 4: Configuration
|
|
print("✅ Testing configuration:")
|
|
try:
|
|
config = SimpleConfig()
|
|
print(f" URL: {config.dolibarr_url}")
|
|
print(f" API Key: {'*' * min(len(config.api_key), 10)}...")
|
|
print(" Configuration loading - OK")
|
|
except Exception as e:
|
|
print(f" ⚠️ Configuration error: {e}")
|
|
|
|
print("")
|
|
|
|
# Test 5: Server instantiation
|
|
print("✅ Testing server:")
|
|
try:
|
|
server = UltraSimpleServer("test-ultra")
|
|
tools = server.get_available_tools()
|
|
print(f" Server created - OK")
|
|
print(f" Available tools: {len(tools)}")
|
|
print(f" First few tools: {', '.join(tools[:5])}")
|
|
except Exception as e:
|
|
print(f" ❌ Server creation failed: {e}")
|
|
sys.exit(1)
|
|
|
|
print("")
|
|
|
|
# Test 6: Mock tool call (without actual API)
|
|
print("✅ Testing tool call structure:")
|
|
try:
|
|
# This will likely fail with an API error, but tests the structure
|
|
result = server.handle_tool_call("test_connection", {})
|
|
if "error" in result:
|
|
print(" Tool call structure - OK (API error expected)")
|
|
print(f" Error type: {result.get('type', 'unknown')}")
|
|
else:
|
|
print(" Tool call structure - OK")
|
|
print(f" Result: {result}")
|
|
except Exception as e:
|
|
print(f" ❌ Tool call structure failed: {e}")
|
|
sys.exit(1)
|
|
|
|
print("")
|
|
print("=" * 60)
|
|
print("🎉 ALL TESTS PASSED!")
|
|
print("=" * 60)
|
|
print("")
|
|
print("✅ Ultra-simple server is ready to run")
|
|
print("✅ Zero compiled extensions - maximum Windows compatibility")
|
|
print("✅ Only pure Python libraries used")
|
|
print("")
|
|
print("🚀 To run the server:")
|
|
print(" .\\run_ultra.bat")
|
|
print("")
|
|
print("🧪 To run interactively:")
|
|
print(" python -m src.dolibarr_mcp.ultra_simple_server")
|
|
print("")
|
|
|
|
# Cleanup
|
|
if hasattr(server, 'client') and server.client:
|
|
server.client.close()
|
|
|
|
print("Test completed successfully!")
|