#!/usr/bin/env python3
"""
测试脚本:验证MCP服务器输入验证是否正常工作
"""
from mcp_server import HelloWorldInput
def test_input_validation():
"""测试输入参数验证"""
print("=" * 50)
print("测试 MCP Hello World 输入验证")
print("=" * 50)
# 测试用例1: 默认参数
print("\n测试1: 默认参数")
print("-" * 50)
try:
input_data = HelloWorldInput()
print(f"✓ 成功: name={input_data.name}, language={input_data.language}, count={input_data.count}")
except Exception as e:
print(f"✗ 失败: {e}")
# 测试用例2: 正常中文输入
print("\n测试2: 正常中文输入")
print("-" * 50)
try:
input_data = HelloWorldInput(name="张三", language="zh", count=2)
print(f"✓ 成功: {input_data.name} - {input_data.language} - {input_data.count}")
except Exception as e:
print(f"✗ 失败: {e}")
# 测试用例3: 正常英文输入
print("\n测试3: 正常英文输入")
print("-" * 50)
try:
input_data = HelloWorldInput(name="Alice", language="en", count=3)
print(f"✓ 成功: {input_data.name} - {input_data.language} - {input_data.count}")
except Exception as e:
print(f"✗ 失败: {e}")
# 测试用例4: 参数验证(无效语言)
print("\n测试4: 参数验证(无效语言)")
print("-" * 50)
try:
input_data = HelloWorldInput(language="fr")
print(f"✗ 意外成功: {input_data}")
except Exception as e:
print(f"✓ 预期错误: {e}")
# 测试用例5: 参数验证(count超出范围)
print("\n测试5: 参数验证(count超出范围)")
print("-" * 50)
try:
input_data = HelloWorldInput(count=20)
print(f"✗ 意外成功: {input_data}")
except Exception as e:
print(f"✓ 预期错误: {e}")
# 测试用例6: 参数验证(count太小)
print("\n测试6: 参数验证(count太小)")
print("-" * 50)
try:
input_data = HelloWorldInput(count=0)
print(f"✗ 意外成功: {input_data}")
except Exception as e:
print(f"✓ 预期错误: {e}")
# 测试用例7: 参数验证(名字太长)
print("\n测试7: 参数验证(名字太长)")
print("-" * 50)
try:
long_name = "A" * 101
input_data = HelloWorldInput(name=long_name)
print(f"✗ 意外成功: {input_data}")
except Exception as e:
print(f"✓ 预期错误: {e}")
# 测试用例8: 参数验证(名字为空)
print("\n测试8: 参数验证(名字为空)")
print("-" * 50)
try:
input_data = HelloWorldInput(name=" ")
print(f"✗ 意外成功: {input_data}")
except Exception as e:
print(f"✓ 预期错误: {e}")
print("\n" + "=" * 50)
print("所有测试完成!")
print("=" * 50)
print("\n提示: 要测试完整的MCP服务器,请使用MCP客户端工具")
print("或者直接在Cursor中注册并使用该服务器")
if __name__ == "__main__":
test_input_validation()