""" Test tkinter folder selection functionality """ import sys import os # Add project root to path current_dir = os.path.dirname(os.path.abspath(__file__)) parent_dir = os.path.dirname(current_dir) sys.path.insert(0, parent_dir) 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.")