145 lines
5.1 KiB
Python
145 lines
5.1 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
测试文件夹导入功能
|
||
"""
|
||
|
||
import sys
|
||
import os
|
||
|
||
def test_folder_import_dialog():
|
||
"""测试文件夹导入对话框"""
|
||
print("🔍 测试文件夹导入对话框...")
|
||
|
||
try:
|
||
from PyQt5.QtWidgets import QApplication
|
||
from data.project_manager import ProjectManager
|
||
from ui.import_project_dialog import ImportProjectDialog
|
||
|
||
# 创建应用程序实例
|
||
app = QApplication.instance()
|
||
if app is None:
|
||
app = QApplication([])
|
||
|
||
# 创建项目管理器
|
||
project_manager = ProjectManager()
|
||
print("✅ ProjectManager 创建成功")
|
||
|
||
# 创建导入对话框
|
||
dialog = ImportProjectDialog(project_manager)
|
||
print("✅ ImportProjectDialog 创建成功")
|
||
|
||
# 检查对话框标题
|
||
expected_title = "导入文件夹"
|
||
actual_title = dialog.windowTitle()
|
||
if actual_title == expected_title:
|
||
print(f"✅ 窗口标题正确: {actual_title}")
|
||
else:
|
||
print(f"❌ 窗口标题错误: 期望 '{expected_title}', 实际 '{actual_title}'")
|
||
|
||
# 检查UI文本
|
||
print("✅ 对话框创建成功,UI文本应该已更新为文件夹相关")
|
||
|
||
# 显示对话框进行手动测试
|
||
print("\n💡 对话框将显示,请测试以下功能:")
|
||
print(" 1. 检查标题是否为'导入文件夹'")
|
||
print(" 2. 检查GroupBox标题是否为'选择文件夹'")
|
||
print(" 3. 检查按钮文字是否为'点击选择文件夹'")
|
||
print(" 4. 检查提示文字是否为'拖拽文件夹到这里'")
|
||
print(" 5. 检查格式提示是否为'支持任意文件夹'")
|
||
print(" 6. 测试点击选择按钮是否打开文件夹选择对话框")
|
||
print(" 7. 测试拖拽文件夹功能")
|
||
print(" 8. 关闭对话框完成测试")
|
||
|
||
# 显示对话框
|
||
dialog.show()
|
||
result = dialog.exec_()
|
||
|
||
if result == dialog.Accepted:
|
||
print("✅ 对话框正常关闭(用户点击了导入)")
|
||
else:
|
||
print("✅ 对话框正常关闭(用户取消了操作)")
|
||
|
||
return True
|
||
|
||
except Exception as e:
|
||
print(f"❌ 测试失败: {e}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
return False
|
||
|
||
def verify_changes():
|
||
"""验证代码修改"""
|
||
print("🔍 验证代码修改...")
|
||
|
||
try:
|
||
# 读取修改后的文件
|
||
with open('ui/import_project_dialog.py', 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# 检查关键修改
|
||
checks = [
|
||
("窗口标题", 'self.setWindowTitle("导入文件夹")'),
|
||
("GroupBox标题", 'QGroupBox("选择文件夹")'),
|
||
("按钮文字", 'QPushButton("点击选择文件夹")'),
|
||
("提示文字", '"拖拽文件夹到这里,或者"'),
|
||
("格式提示", '"支持任意文件夹"'),
|
||
("文件夹选择", 'QFileDialog.getExistingDirectory'),
|
||
("文件夹过滤", 'os.path.isdir(f)'),
|
||
]
|
||
|
||
all_passed = True
|
||
for check_name, check_text in checks:
|
||
if check_text in content:
|
||
print(f"✅ {check_name}: 已修改")
|
||
else:
|
||
print(f"❌ {check_name}: 未找到修改")
|
||
all_passed = False
|
||
|
||
return all_passed
|
||
|
||
except Exception as e:
|
||
print(f"❌ 验证失败: {e}")
|
||
return False
|
||
|
||
def main():
|
||
"""主函数"""
|
||
print("🔧 测试导入文件夹功能修改")
|
||
print("=" * 60)
|
||
|
||
# 验证代码修改
|
||
code_ok = verify_changes()
|
||
|
||
if code_ok:
|
||
print("\n✅ 代码修改验证通过")
|
||
|
||
# 测试对话框
|
||
dialog_ok = test_folder_import_dialog()
|
||
|
||
if dialog_ok:
|
||
print("\n🎉 所有测试通过!")
|
||
print("\n📋 修改总结:")
|
||
print("1. ✅ 窗口标题: '导入项目文件' → '导入文件夹'")
|
||
print("2. ✅ GroupBox标题: '选择项目文件' → '选择文件夹'")
|
||
print("3. ✅ 按钮文字: '点击选择文件' → '点击选择文件夹'")
|
||
print("4. ✅ 提示文字: '拖拽文件到这里' → '拖拽文件夹到这里'")
|
||
print("5. ✅ 格式提示: '支持.zip,.rar,.7z格式' → '支持任意文件夹'")
|
||
print("6. ✅ 选择逻辑: 文件选择 → 文件夹选择")
|
||
print("7. ✅ 拖拽逻辑: 支持文件夹过滤")
|
||
print("8. ✅ 列表显示: 显示文件夹信息和文件数量")
|
||
print("9. ✅ 导入逻辑: 直接使用文件夹路径")
|
||
print("\n💡 现在可以导入文件夹作为项目了!")
|
||
return True
|
||
else:
|
||
print("\n❌ 对话框测试失败")
|
||
return False
|
||
else:
|
||
print("\n❌ 代码修改验证失败")
|
||
return False
|
||
|
||
if __name__ == "__main__":
|
||
success = main()
|
||
print("\n按Enter键退出...")
|
||
input()
|
||
sys.exit(0 if success else 1)
|