69 lines
2.3 KiB
Python
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.") |