test_copy_files.py•2.59 kB
#!/usr/bin/env python3
"""
测试copy_files工具的功能
"""
import asyncio
import os
import tempfile
from file_manager_mcp.tools import copy_files
async def test_copy_files():
"""测试copy_files函数"""
print("开始测试copy_files工具...")
# 创建临时目录和测试文件
with tempfile.TemporaryDirectory() as temp_dir:
print(f"使用临时目录: {temp_dir}")
# 创建源文件
source_dir = os.path.join(temp_dir, "source")
os.makedirs(source_dir)
test_file1 = os.path.join(source_dir, "test1.txt")
test_file2 = os.path.join(source_dir, "test2.txt")
# 创建测试文件
with open(test_file1, 'w', encoding='utf-8') as f:
f.write("这是测试文件1的内容")
with open(test_file2, 'w', encoding='utf-8') as f:
f.write("这是测试文件2的内容")
# 创建目标目录
dest_dir = os.path.join(temp_dir, "destination")
print(f"源文件1: {test_file1}")
print(f"源文件2: {test_file2}")
print(f"目标目录: {dest_dir}")
# 测试复制文件
print("\n=== 测试1: 复制多个文件到新目录 ===")
result = await copy_files([test_file1, test_file2], dest_dir, overwrite=False)
print(f"结果: {result}")
# 验证文件是否复制成功
dest_file1 = os.path.join(dest_dir, "test1.txt")
dest_file2 = os.path.join(dest_dir, "test2.txt")
if os.path.exists(dest_file1) and os.path.exists(dest_file2):
print("✓ 文件复制成功")
else:
print("✗ 文件复制失败")
# 测试重复复制(不覆盖)
print("\n=== 测试2: 重复复制文件(不覆盖) ===")
result = await copy_files([test_file1], dest_dir, overwrite=False)
print(f"结果: {result}")
# 测试重复复制(覆盖)
print("\n=== 测试3: 重复复制文件(覆盖) ===")
result = await copy_files([test_file1], dest_dir, overwrite=True)
print(f"结果: {result}")
# 测试复制不存在的文件
print("\n=== 测试4: 复制不存在的文件 ===")
nonexistent_file = os.path.join(source_dir, "nonexistent.txt")
result = await copy_files([nonexistent_file], dest_dir, overwrite=False)
print(f"结果: {result}")
print("\n测试完成!")
if __name__ == "__main__":
asyncio.run(test_copy_files())