75 lines
1.9 KiB
Python
75 lines
1.9 KiB
Python
#!/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)
|