#!/usr/bin/env python3 """ Test script to verify asset loading fix and version handling """ import os import sys from pyPhotoAlbum.project_serializer import load_from_zip from pyPhotoAlbum.models import ImageData from pyPhotoAlbum.version_manager import format_version_info # Path to test file test_file = "/home/dtourolle/Nextcloud/Photo Gallery/gr58/Album_pytool.ppz" print("=" * 70) print("Testing asset loading fix and version handling") print("=" * 70) print() print(format_version_info()) print() print("=" * 70) print(f"Loading: {test_file}") print("=" * 70) print() # Load project project, error = load_from_zip(test_file) if error: print(f"ERROR: {error}") sys.exit(1) print(f"Project loaded: {project.name}") print(f"Project folder: {project.folder_path}") print(f"Assets folder: {project.asset_manager.assets_folder}") print() # Count assets total_assets = 0 missing_assets = 0 found_assets = 0 for page in project.pages: for element in page.layout.elements: if isinstance(element, ImageData) and element.image_path: total_assets += 1 # Check if asset exists if os.path.isabs(element.image_path): full_path = element.image_path else: full_path = os.path.join(project.folder_path, element.image_path) if os.path.exists(full_path): found_assets += 1 print(f"✓ Found: {element.image_path}") else: missing_assets += 1 print(f"✗ Missing: {element.image_path}") print() print(f"Results:") print(f" Total assets: {total_assets}") print(f" Found: {found_assets}") print(f" Missing: {missing_assets}") if missing_assets == 0: print() print("SUCCESS! All assets loaded correctly.") sys.exit(0) else: print() print(f"PARTIAL: {missing_assets} assets still missing.") sys.exit(1)