ci: Add testing framework setup

This commit is contained in:
tssujt
2025-07-10 12:08:28 +08:00
parent 8af1c47e15
commit 0c4aa34f8f
19 changed files with 672 additions and 2 deletions
+49
View File
@@ -0,0 +1,49 @@
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