cluster4npu/test_folder_selection.py

69 lines
2.3 KiB
Python

"""
Test tkinter folder selection functionality
"""
import sys
import os
# Add project root to path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from utils.folder_dialog import select_folder, select_assets_folder
def test_basic_folder_selection():
"""Test basic folder selection"""
print("Testing basic folder selection...")
folder = select_folder("Select any folder for testing")
if folder:
print(f"Selected folder: {folder}")
print(f" Exists: {os.path.exists(folder)}")
print(f" Is directory: {os.path.isdir(folder)}")
return True
else:
print("No folder selected")
return False
def test_assets_folder_selection():
"""Test Assets folder selection with validation"""
print("\nTesting Assets folder selection...")
result = select_assets_folder()
print(f"Selected path: {result['path']}")
print(f"Valid: {result['valid']}")
print(f"Message: {result['message']}")
if 'details' in result:
details = result['details']
print(f"Details:")
print(f" Has Firmware folder: {details.get('has_firmware_folder', False)}")
print(f" Has Models folder: {details.get('has_models_folder', False)}")
print(f" Firmware series: {details.get('firmware_series', [])}")
print(f" Models series: {details.get('models_series', [])}")
print(f" Available series: {details.get('available_series', [])}")
print(f" Series with files: {details.get('series_with_files', [])}")
return result['valid']
if __name__ == "__main__":
print("Testing Folder Selection Dialog")
print("=" * 40)
# Test basic functionality
basic_works = test_basic_folder_selection()
# Test Assets folder functionality
assets_works = test_assets_folder_selection()
print("\n" + "=" * 40)
print("Test Results:")
print(f"Basic folder selection: {'PASS' if basic_works else 'FAIL'}")
print(f"Assets folder selection: {'PASS' if assets_works else 'FAIL'}")
if basic_works:
print("\ntkinter folder selection is working!")
print("You can now use this in your ExactModelNode.")
else:
print("\ntkinter might not be available or there's an issue.")
print("Consider using PyQt5 QFileDialog as fallback.")