dreader-application/test_pagination_visual.py
2025-11-12 18:52:08 +00:00

51 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""
Test script to visualize library pagination.
"""
from pathlib import Path
from dreader import LibraryManager
def test_pagination():
"""Test pagination with actual library"""
library_path = Path(__file__).parent / 'tests' / 'data' / 'library-epub'
# Create library manager (default books_per_page=6)
library = LibraryManager(
library_path=str(library_path),
page_size=(800, 1200)
)
# Scan library
books = library.scan_library()
print(f"\nFound {len(books)} books")
print(f"Books per page: {library.books_per_page}")
print(f"Total pages: {library.get_total_pages()}")
# Render all pages
for page_num in range(library.get_total_pages()):
library.set_page(page_num)
print(f"\n=== Rendering Page {page_num + 1}/{library.get_total_pages()} ===")
library.create_library_table()
img = library.render_library()
output_path = f'/tmp/library_pagination_page{page_num + 1}.png'
img.save(output_path)
print(f"Saved to {output_path}")
# Show which books are on this page
start_idx = page_num * library.books_per_page
end_idx = min(start_idx + library.books_per_page, len(books))
page_books = books[start_idx:end_idx]
print(f"Books on this page ({len(page_books)}):")
for book in page_books:
print(f" - {book['title']} by {book['author']}")
# Cleanup
library.cleanup()
print("\nPagination test complete!")
if __name__ == '__main__':
test_pagination()