forked from josch/plakativ
test.py: rework using pytest.mark.parametrize
This commit is contained in:
parent
4c958b72aa
commit
7c43609e92
1 changed files with 102 additions and 150 deletions
252
test.py
252
test.py
|
@ -11,41 +11,109 @@ def mm_to_pt(length):
|
||||||
return (72.0 * length) / 25.4
|
return (72.0 * length) / 25.4
|
||||||
|
|
||||||
|
|
||||||
|
def _create_pdf(width, height):
|
||||||
|
return tmpfile
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.fixture(scope="module")
|
||||||
def infile_a4_portrait():
|
def infile_a4_portrait():
|
||||||
doc = fitz.open()
|
tmpfile = _create_pdf(mm_to_pt(210), mm_to_pt(297))
|
||||||
width = mm_to_pt(210)
|
yield tmpfile
|
||||||
height = mm_to_pt(297)
|
os.unlink(tmpfile)
|
||||||
page = doc.newPage(pno=-1, width=width, height=height)
|
|
||||||
img = page.newShape()
|
|
||||||
|
|
||||||
red = fitz.utils.getColor("red")
|
|
||||||
green = fitz.utils.getColor("green")
|
|
||||||
blue = fitz.utils.getColor("blue")
|
|
||||||
orange = fitz.utils.getColor("orange")
|
|
||||||
|
|
||||||
img.insertText(fitz.Point(97, 620), "A", fontsize=600, color=blue)
|
@pytest.fixture(scope="module")
|
||||||
img.commit()
|
def infile_custom_portrait():
|
||||||
img.drawLine(fitz.Point(0, 0), fitz.Point(width, height))
|
tmpfile = _create_pdf(mm_to_pt(200), mm_to_pt(400))
|
||||||
img.finish(color=red)
|
|
||||||
img.drawLine(fitz.Point(0, height), fitz.Point(width, 0))
|
|
||||||
img.finish(color=green)
|
|
||||||
img.drawRect(fitz.Rect(fitz.Point(0, 0), fitz.Point(width, height)))
|
|
||||||
img.finish(color=orange)
|
|
||||||
img.commit()
|
|
||||||
|
|
||||||
fd, tmpfile = tempfile.mkstemp(prefix="plakativ")
|
|
||||||
os.close(fd)
|
|
||||||
doc.save(tmpfile, pretty=True, expand=255)
|
|
||||||
yield tmpfile
|
yield tmpfile
|
||||||
os.unlink(tmpfile)
|
os.unlink(tmpfile)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.fixture(scope="module")
|
||||||
def infile_a4_landscape():
|
def infile_a4_landscape():
|
||||||
|
tmpfile = _create_pdf(mm_to_pt(297), mm_to_pt(210))
|
||||||
|
yield tmpfile
|
||||||
|
os.unlink(tmpfile)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="module")
|
||||||
|
def infile_custom_landscape():
|
||||||
|
tmpfile = _create_pdf(mm_to_pt(400), mm_to_pt(200))
|
||||||
|
yield tmpfile
|
||||||
|
os.unlink(tmpfile)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="module")
|
||||||
|
def infile_custom_square():
|
||||||
|
tmpfile = _create_pdf(mm_to_pt(300), mm_to_pt(300))
|
||||||
|
yield tmpfile
|
||||||
|
os.unlink(tmpfile)
|
||||||
|
|
||||||
|
|
||||||
|
_formats = {
|
||||||
|
"dina4_portrait": (210, 297),
|
||||||
|
"dina4_landscape": (297, 210),
|
||||||
|
"dina3_portrait": (297, 420),
|
||||||
|
"dina3_landscape": (420, 297),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"postersize,input_pagesize,output_pagesize,expected",
|
||||||
|
[
|
||||||
|
(
|
||||||
|
_formats["dina3_portrait"],
|
||||||
|
_formats["dina4_portrait"],
|
||||||
|
None,
|
||||||
|
[
|
||||||
|
(
|
||||||
|
["0", "380.8549", "337.72779", "841.8898"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "117.68077", "-538.5826"],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
["257.5478", "380.8549", "595.2756", "841.8898"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "-364.20893", "-538.5826"],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
["0", "0", "337.72779", "461.03489"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "117.68077", "189.9213"],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
["257.5478", "0", "595.2756", "461.03489"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "-364.20893", "189.9213"],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
_formats["dina3_landscape"],
|
||||||
|
_formats["dina4_landscape"],
|
||||||
|
None,
|
||||||
|
[
|
||||||
|
(
|
||||||
|
["0", "257.5478", "461.03489", "595.2756"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "189.9213", "-364.20893"],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
["380.8549", "257.5478", "841.8898", "595.2756"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "-538.5826", "-364.20893"],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
["0", "0", "461.03489", "337.72779"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "189.9213", "117.68074"],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
["380.8549", "0", "841.8898", "337.72779"],
|
||||||
|
["1.4141413", "0", "0", "1.4141413", "-538.5826", "117.68074"],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_cases(postersize, input_pagesize, output_pagesize, expected):
|
||||||
|
width = mm_to_pt(input_pagesize[0])
|
||||||
|
height = mm_to_pt(input_pagesize[1])
|
||||||
|
|
||||||
doc = fitz.open()
|
doc = fitz.open()
|
||||||
width = mm_to_pt(297)
|
|
||||||
height = mm_to_pt(210)
|
|
||||||
page = doc.newPage(pno=-1, width=width, height=height)
|
page = doc.newPage(pno=-1, width=width, height=height)
|
||||||
img = page.newShape()
|
img = page.newShape()
|
||||||
|
|
||||||
|
@ -64,139 +132,23 @@ def infile_a4_landscape():
|
||||||
img.finish(color=orange)
|
img.finish(color=orange)
|
||||||
img.commit()
|
img.commit()
|
||||||
|
|
||||||
fd, tmpfile = tempfile.mkstemp(prefix="plakativ")
|
fd, infile = tempfile.mkstemp(
|
||||||
|
prefix="plakativ", suffix="%f_%f.pdf" % (width, height)
|
||||||
|
)
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
doc.save(tmpfile, pretty=True, expand=255)
|
doc.save(infile, pretty=True, expand=255)
|
||||||
yield tmpfile
|
|
||||||
os.unlink(tmpfile)
|
|
||||||
|
|
||||||
|
|
||||||
def test_foo_a3_portrait(infile_a4_portrait):
|
|
||||||
fd, outfile = tempfile.mkstemp(prefix="plakativ")
|
fd, outfile = tempfile.mkstemp(prefix="plakativ")
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
plakativ.compute_layout(infile_a4_portrait, outfile, mode="size", size=(297, 420))
|
plakativ.compute_layout(infile, outfile, mode="size", size=postersize)
|
||||||
|
os.unlink(infile)
|
||||||
|
|
||||||
reader = pdfrw.PdfReader(outfile)
|
reader = pdfrw.PdfReader(outfile)
|
||||||
os.unlink(outfile)
|
os.unlink(outfile)
|
||||||
|
|
||||||
pages = reader.Root.Pages.Kids
|
pages = reader.Root.Pages.Kids
|
||||||
assert len(pages) == 4
|
assert len(pages) == len(expected)
|
||||||
assert pages[0].Resources.XObject.fzFrm0.BBox == [
|
|
||||||
"0",
|
|
||||||
"380.8549",
|
|
||||||
"337.72779",
|
|
||||||
"841.8898",
|
|
||||||
]
|
|
||||||
assert pages[1].Resources.XObject.fzFrm0.BBox == [
|
|
||||||
"257.5478",
|
|
||||||
"380.8549",
|
|
||||||
"595.2756",
|
|
||||||
"841.8898",
|
|
||||||
]
|
|
||||||
assert pages[2].Resources.XObject.fzFrm0.BBox == [
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"337.72779",
|
|
||||||
"461.03489",
|
|
||||||
]
|
|
||||||
assert pages[3].Resources.XObject.fzFrm0.BBox == [
|
|
||||||
"257.5478",
|
|
||||||
"0",
|
|
||||||
"595.2756",
|
|
||||||
"461.03489",
|
|
||||||
]
|
|
||||||
assert pages[0].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4141413",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4141413",
|
|
||||||
"117.68077",
|
|
||||||
"-538.5826",
|
|
||||||
]
|
|
||||||
assert pages[1].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4141413",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4141413",
|
|
||||||
"-364.20893",
|
|
||||||
"-538.5826",
|
|
||||||
]
|
|
||||||
assert pages[2].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4141413",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4141413",
|
|
||||||
"117.68077",
|
|
||||||
"189.9213",
|
|
||||||
]
|
|
||||||
assert pages[3].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4141413",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4141413",
|
|
||||||
"-364.20893",
|
|
||||||
"189.9213",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
for page, (bbox, matrix) in zip(pages, expected):
|
||||||
def test_foo_a3_landscape(infile_a4_landscape):
|
assert page.Resources.XObject.fzFrm0.BBox == bbox
|
||||||
fd, outfile = tempfile.mkstemp(prefix="plakativ")
|
assert page.Resources.XObject.fzFrm0.Matrix == matrix
|
||||||
os.close(fd)
|
|
||||||
plakativ.compute_layout(infile_a4_landscape, outfile, mode="size", size=(420, 296))
|
|
||||||
|
|
||||||
reader = pdfrw.PdfReader(outfile)
|
|
||||||
os.unlink(outfile)
|
|
||||||
|
|
||||||
pages = reader.Root.Pages.Kids
|
|
||||||
assert len(pages) == 4
|
|
||||||
assert pages[0].Resources.XObject.fzFrm0.BBox == [
|
|
||||||
"0",
|
|
||||||
"257.41648",
|
|
||||||
"461.1662",
|
|
||||||
"595.2756",
|
|
||||||
]
|
|
||||||
assert pages[1].Resources.XObject.fzFrm0.BBox == [
|
|
||||||
"380.72358",
|
|
||||||
"257.41648",
|
|
||||||
"841.8898",
|
|
||||||
"595.2756",
|
|
||||||
]
|
|
||||||
assert pages[2].Resources.XObject.fzFrm0.BBox == ["0", "0", "461.1662", "337.8591"]
|
|
||||||
assert pages[3].Resources.XObject.fzFrm0.BBox == [
|
|
||||||
"380.72358",
|
|
||||||
"0",
|
|
||||||
"841.8898",
|
|
||||||
"337.8591",
|
|
||||||
]
|
|
||||||
assert pages[0].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4095239",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4095239",
|
|
||||||
"191.86499",
|
|
||||||
"-362.83467",
|
|
||||||
]
|
|
||||||
assert pages[1].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4095239",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4095239",
|
|
||||||
"-536.6389",
|
|
||||||
"-362.83467",
|
|
||||||
]
|
|
||||||
assert pages[2].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4095239",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4095239",
|
|
||||||
"191.86499",
|
|
||||||
"119.055118",
|
|
||||||
]
|
|
||||||
assert pages[3].Resources.XObject.fzFrm0.Matrix == [
|
|
||||||
"1.4095239",
|
|
||||||
"0",
|
|
||||||
"0",
|
|
||||||
"1.4095239",
|
|
||||||
"-536.6389",
|
|
||||||
"119.055118",
|
|
||||||
]
|
|
||||||
|
|
Loading…
Reference in a new issue