forked from mirrors/cbz
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import pytest
|
|
from pathlib import Path
|
|
from cbz.comic import ComicInfo
|
|
from cbz.page import PageInfo
|
|
from cbz.constants import PageType
|
|
|
|
@pytest.fixture
|
|
def fixtures_dir():
|
|
"""Fixture that provides the path to the test fixtures directory."""
|
|
return Path(__file__).parent / "fixtures"
|
|
|
|
@pytest.fixture
|
|
def images_dir(fixtures_dir):
|
|
"""Fixture that provides the path to the test images directory."""
|
|
return fixtures_dir / "images"
|
|
|
|
@pytest.fixture
|
|
def sample_image_path(images_dir):
|
|
"""Fixture that provides a sample image path."""
|
|
return images_dir / "page-000.jpg"
|
|
|
|
@pytest.fixture
|
|
def sample_cbz_file(tmp_path, images_dir):
|
|
"""Fixture that creates a sample CBZ file for testing."""
|
|
# Load sample pages
|
|
image_paths = sorted(list(images_dir.iterdir()))[:3] # Use first 3 images
|
|
pages = []
|
|
|
|
for i, path in enumerate(image_paths):
|
|
page_type = PageType.FRONT_COVER if i == 0 else PageType.STORY
|
|
page = PageInfo.load(path=path, type=page_type)
|
|
pages.append(page)
|
|
|
|
# Create comic from pages
|
|
comic = ComicInfo.from_pages(
|
|
pages=pages,
|
|
title="Test Comic",
|
|
series="Test Series",
|
|
number=1,
|
|
volume=1,
|
|
year=2024
|
|
)
|
|
|
|
# Save to temporary file
|
|
cbz_path = tmp_path / "test_comic.cbz"
|
|
cbz_content = comic.pack()
|
|
cbz_path.write_bytes(cbz_content)
|
|
|
|
return cbz_path |