first commit
This commit is contained in:
146
test_renamer.py
Normal file
146
test_renamer.py
Normal file
@@ -0,0 +1,146 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
文件重命名工具测试脚本
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
from file_renamer import FileRenamer
|
||||
|
||||
|
||||
def create_test_files(directory):
|
||||
"""创建测试文件"""
|
||||
test_files = [
|
||||
"test_file_1.txt",
|
||||
"test_file_2.txt",
|
||||
"document_2023-01-01.pdf",
|
||||
"image_001.jpg",
|
||||
"IMAGE_002.JPG",
|
||||
"Report.DOCX"
|
||||
]
|
||||
|
||||
for filename in test_files:
|
||||
filepath = os.path.join(directory, filename)
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(f"这是测试文件 {filename} 的内容")
|
||||
|
||||
|
||||
def test_simple_rename(renamer, test_dir):
|
||||
"""测试简单重命名功能"""
|
||||
print("测试简单重命名功能...")
|
||||
|
||||
# 预览模式
|
||||
count = renamer.simple_rename(test_dir, "test", "example", preview=True)
|
||||
print(f"预览模式重命名了 {count} 个文件")
|
||||
|
||||
# 实际重命名
|
||||
count = renamer.simple_rename(test_dir, "test", "example", preview=False)
|
||||
print(f"实际重命名了 {count} 个文件")
|
||||
|
||||
# 验证结果
|
||||
files = os.listdir(test_dir)
|
||||
renamed_files = [f for f in files if f.startswith("example")]
|
||||
print(f"重命名后的文件: {renamed_files}")
|
||||
|
||||
|
||||
def test_regex_rename(renamer, test_dir):
|
||||
"""测试正则表达式重命名功能"""
|
||||
print("\n测试正则表达式重命名功能...")
|
||||
|
||||
# 预览模式
|
||||
count = renamer.regex_rename(test_dir, r"\d+", "#", preview=True)
|
||||
print(f"预览模式重命名了 {count} 个文件")
|
||||
|
||||
# 实际重命名
|
||||
count = renamer.regex_rename(test_dir, r"\d+", "#", preview=False)
|
||||
print(f"实际重命名了 {count} 个文件")
|
||||
|
||||
|
||||
def test_prefix_suffix(renamer, test_dir):
|
||||
"""测试前缀/后缀功能"""
|
||||
print("\n测试前缀/后缀功能...")
|
||||
|
||||
# 添加前缀
|
||||
count = renamer.add_prefix(test_dir, "PRE_", preview=False)
|
||||
print(f"添加前缀重命名了 {count} 个文件")
|
||||
|
||||
# 添加后缀
|
||||
count = renamer.add_suffix(test_dir, "_SUF", preview=False)
|
||||
print(f"添加后缀重命名了 {count} 个文件")
|
||||
|
||||
|
||||
def test_enumerate(renamer, test_dir):
|
||||
"""测试编号功能"""
|
||||
print("\n测试编号功能...")
|
||||
|
||||
count = renamer.enumerate_files(test_dir, prefix="FILE_", start_number=1, digits=3, preview=False)
|
||||
print(f"编号重命名了 {count} 个文件")
|
||||
|
||||
|
||||
def test_case(renamer, test_dir):
|
||||
"""测试大小写转换功能"""
|
||||
print("\n测试大小写转换功能...")
|
||||
|
||||
# 转换为小写
|
||||
count = renamer.change_case(test_dir, "lower", preview=False)
|
||||
print(f"小写转换重命名了 {count} 个文件")
|
||||
|
||||
# 转换为大写
|
||||
count = renamer.change_case(test_dir, "upper", preview=False)
|
||||
print(f"大写转换重命名了 {count} 个文件")
|
||||
|
||||
|
||||
def test_undo(renamer):
|
||||
"""测试撤销功能"""
|
||||
print("\n测试撤销功能...")
|
||||
|
||||
result = renamer.undo_last_rename()
|
||||
if result:
|
||||
print("成功撤销一次操作")
|
||||
else:
|
||||
print("撤销操作失败或无操作可撤销")
|
||||
|
||||
|
||||
def main():
|
||||
"""主测试函数"""
|
||||
print("开始测试文件重命名工具...")
|
||||
|
||||
# 创建临时测试目录
|
||||
test_dir = tempfile.mkdtemp(prefix="renamer_test_")
|
||||
print(f"创建测试目录: {test_dir}")
|
||||
|
||||
try:
|
||||
# 创建测试文件
|
||||
create_test_files(test_dir)
|
||||
print(f"创建测试文件: {os.listdir(test_dir)}")
|
||||
|
||||
# 创建重命名工具实例
|
||||
renamer = FileRenamer(os.path.join(test_dir, "test_rename_log.txt"))
|
||||
|
||||
# 运行各项测试
|
||||
test_simple_rename(renamer, test_dir)
|
||||
test_regex_rename(renamer, test_dir)
|
||||
test_prefix_suffix(renamer, test_dir)
|
||||
test_enumerate(renamer, test_dir)
|
||||
test_case(renamer, test_dir)
|
||||
test_undo(renamer)
|
||||
|
||||
print("\n测试完成!")
|
||||
print(f"最终文件列表: {os.listdir(test_dir)}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"测试过程中出现错误: {e}")
|
||||
finally:
|
||||
# 清理测试目录
|
||||
try:
|
||||
shutil.rmtree(test_dir)
|
||||
print(f"已清理测试目录: {test_dir}")
|
||||
except Exception as e:
|
||||
print(f"清理测试目录时出错: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user