#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
集成测试脚本
验证增强版MCP服务器各模块的集成情况
"""
import sys
import os
import logging
# 配置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def test_config_module():
"""测试配置模块"""
print("\n=== 测试配置模块 ===")
try:
from config import get_config_manager, get_config
# 测试配置管理器初始化
config_mgr = get_config_manager()
print("✅ 配置管理器初始化成功")
# 测试配置获取
server_name = get_config('server.name')
print(f"✅ 服务器名称: {server_name}")
transport = get_config('server.transport')
print(f"✅ 传输方式: {transport}")
exclude_dirs = get_config('options.exclude_dirs')
print(f"✅ 排除目录: {exclude_dirs}")
# 测试配置验证
validation_result = config_mgr.validate_config()
if validation_result['valid']:
print("✅ 配置验证通过")
else:
print(f"⚠️ 配置验证警告: {validation_result['issues']}")
return True
except Exception as e:
print(f"❌ 配置模块测试失败: {e}")
return False
def test_security_module():
"""测试安全模块"""
print("\n=== 测试安全模块 ===")
try:
from security import get_security_validator, validate_path_safety
# 测试安全验证器初始化
validator = get_security_validator()
print("✅ 安全验证器初始化成功")
# 测试路径验证
test_path = "."
result = validate_path_safety(test_path)
if result['valid']:
print(f"✅ 路径安全验证通过: {test_path}")
else:
print(f"⚠️ 路径验证警告: {result['error']}")
# 测试目录结构验证
dir_result = validator.validate_directory_structure(".")
if dir_result['safe']:
print(f"✅ 目录结构验证通过,深度: {dir_result['depth']}")
else:
print(f"⚠️ 目录结构验证警告: {dir_result['reason']}")
# 测试文件类型验证
file_result = validator.validate_file_type("test.txt")
if file_result['safe']:
print(f"✅ 文件类型验证通过: {file_result['extension']}")
else:
print(f"⚠️ 文件类型验证警告: {file_result['message']}")
return True
except Exception as e:
print(f"❌ 安全模块测试失败: {e}")
return False
def test_mcp_server():
"""测试MCP服务器"""
print("\n=== 测试MCP服务器 ===")
try:
from enhanced_folder_docs_mcp import mcp
print("✅ 增强版MCP服务器导入成功")
# 检查服务器配置
print(f"✅ 服务器名称: {mcp.name}")
# 简化测试,不检查工具注册(因为需要异步调用)
print("✅ 服务器配置检查完成")
return True
except Exception as e:
print(f"❌ MCP服务器测试失败: {e}")
return False
def test_functionality():
"""测试基本功能"""
print("\n=== 测试基本功能 ===")
try:
from enhanced_folder_docs_mcp import generate_folder_tree, generate_readme_content
# 测试文件夹结构生成
test_dir = "."
exclude_dirs = ['.git', '__pycache__', '.pytest_cache', 'node_modules']
tree = generate_folder_tree(test_dir, exclude_dirs)
print(f"✅ 文件夹结构生成成功,长度: {len(tree)} 字符")
# 测试README内容生成
readme = generate_readme_content(test_dir)
print(f"✅ README内容生成成功,长度: {len(readme)} 字符")
return True
except Exception as e:
print(f"❌ 基本功能测试失败: {e}")
return False
def main():
"""主测试函数"""
print("开始增强版MCP服务器集成测试...")
results = {
"配置模块": test_config_module(),
"安全模块": test_security_module(),
"MCP服务器": test_mcp_server(),
"基本功能": test_functionality()
}
print("\n=== 测试结果汇总 ===")
passed = 0
total = len(results)
for module, result in results.items():
status = "✅ 通过" if result else "❌ 失败"
print(f"{module}: {status}")
if result:
passed += 1
print(f"\n总计: {passed}/{total} 项测试通过")
if passed == total:
print("🎉 所有集成测试通过!增强版MCP服务器已准备就绪。")
return True
else:
print("⚠️ 部分测试失败,请检查上述错误信息。")
return False
if __name__ == "__main__":
success = main()
sys.exit(0 if success else 1)