pyPhotoAlbum/tests/test_asset_loading.py
Duncan Tourolle 0d698a83b4
Some checks failed
Python CI / test (push) Successful in 55s
Lint / lint (push) Successful in 1m31s
Tests / test (3.10) (push) Failing after 44s
Tests / test (3.11) (push) Failing after 42s
Tests / test (3.9) (push) Failing after 42s
large change to allow project merging
2025-11-23 00:33:42 +01:00

58 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Test script to verify asset loading fix and version handling
"""
import os
import pytest
from pyPhotoAlbum.project_serializer import load_from_zip
from pyPhotoAlbum.models import ImageData
# Path to test file - this is a real file that may or may not exist
TEST_FILE = "/home/dtourolle/Nextcloud/Photo Gallery/gr58/Album_pytool.ppz"
@pytest.mark.skipif(not os.path.exists(TEST_FILE), reason=f"Test file not found: {TEST_FILE}")
def test_asset_loading_from_real_file():
"""Test asset loading from a real project file (if it exists)"""
# Load project
project = load_from_zip(TEST_FILE)
assert project is not None, "Failed to load project"
assert project.name is not None, "Project has no name"
assert project.folder_path is not None, "Project has no folder path"
assert project.asset_manager.assets_folder is not None, "Project has no assets folder"
# 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
else:
missing_assets += 1
print(f"Missing asset: {element.image_path}")
# Report results
print(f"\nResults:")
print(f" Total assets: {total_assets}")
print(f" Found: {found_assets}")
print(f" Missing: {missing_assets}")
# The test passes as long as we can load the project
# Missing assets are acceptable (they might be on a different machine)
assert total_assets >= 0, "Should have counted assets"