2023-07-09 14:24:31 +02:00
|
|
|
import os
|
|
|
|
|
from typing import Callable
|
|
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
2023-07-09 15:10:24 +02:00
|
|
|
from labeler.domain.objects import Dimension, MediaDefinition
|
|
|
|
|
|
2023-07-09 14:24:31 +02:00
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def current_dir(request) -> str:
|
|
|
|
|
return os.path.dirname(request.module.__file__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def get_test_image(current_dir) -> Callable[[str], bytes]:
|
|
|
|
|
def f(name):
|
|
|
|
|
return open(os.path.join(current_dir, "test_images", name), "rb").read()
|
|
|
|
|
|
|
|
|
|
return f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def save_test_image(current_dir) -> Callable[[str, bytes], None]:
|
|
|
|
|
def f(name: str, data: bytes):
|
|
|
|
|
open(os.path.join(current_dir, "test_images", name), "wb").write(data)
|
|
|
|
|
|
|
|
|
|
return f
|
2023-07-09 15:10:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def create_test_media() -> Callable[[int, int, int, int, int], MediaDefinition]:
|
|
|
|
|
def f(
|
|
|
|
|
width: int,
|
|
|
|
|
height: int,
|
|
|
|
|
dpi: int = 600,
|
|
|
|
|
margin_horizontal: int = 0,
|
|
|
|
|
margin_vertical: int = 0,
|
|
|
|
|
):
|
|
|
|
|
return MediaDefinition(
|
|
|
|
|
width=Dimension(mm=width),
|
|
|
|
|
length=Dimension(mm=height),
|
|
|
|
|
minimal_margin_horizontal=Dimension(mm=margin_horizontal),
|
|
|
|
|
minimal_margin_vertical=Dimension(mm=margin_vertical),
|
|
|
|
|
dpi=dpi,
|
|
|
|
|
description=f"test media {width}mm x{height}mm @ {dpi}dpi",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return f
|