mirror of
https://github.com/Kozea/WeasyPrint.git
synced 2024-10-04 16:07:57 +03:00
Make the linear-gradient test require cairo-1.14 and other small test fixes
This commit is contained in:
parent
6e82d6563e
commit
8f11d27e48
@ -52,15 +52,23 @@ def save_pixels_to_png(pixels, width, height, filename):
|
||||
).write_to_png(filename)
|
||||
|
||||
|
||||
def requires_cairo_1_12(test):
|
||||
@functools.wraps(test)
|
||||
def decorated_test():
|
||||
if cairo.cairo_version() < 11200:
|
||||
print('Running cairo %s but this test requires 1.12+'
|
||||
% cairo.cairo_version_string())
|
||||
pytest.xfail()
|
||||
test()
|
||||
return decorated_test
|
||||
def requires_cairo(version):
|
||||
tuple_version = [0, 0, 0]
|
||||
for i, number in enumerate(version.split('.')):
|
||||
tuple_version[i] = int(number)
|
||||
version_number = int(''.join('%02i' % number for number in tuple_version))
|
||||
|
||||
def require_cairo_version(test):
|
||||
@functools.wraps(test)
|
||||
def decorated_test():
|
||||
if cairo.cairo_version() < version_number:
|
||||
print('Running cairo %s but this test requires %s+' % (
|
||||
cairo.cairo_version_string(), version))
|
||||
pytest.xfail()
|
||||
test()
|
||||
return decorated_test
|
||||
|
||||
return require_cairo_version
|
||||
|
||||
|
||||
def assert_pixels(name, expected_width, expected_height, expected_pixels,
|
||||
@ -1511,7 +1519,7 @@ def test_visibility():
|
||||
|
||||
|
||||
@assert_no_logs
|
||||
@requires_cairo_1_12
|
||||
@requires_cairo('1.12')
|
||||
def test_tables():
|
||||
# TODO: refactor colspan/rowspan into CSS:
|
||||
# td, th { column-span: attr(colspan integer) }
|
||||
@ -2229,7 +2237,7 @@ def test_overflow():
|
||||
|
||||
|
||||
@assert_no_logs
|
||||
@requires_cairo_1_12
|
||||
@requires_cairo('1.12')
|
||||
def test_clip():
|
||||
"""Test the clip property."""
|
||||
num = [0]
|
||||
@ -2671,7 +2679,7 @@ def test_2d_transform():
|
||||
|
||||
|
||||
@assert_no_logs
|
||||
@requires_cairo_1_12
|
||||
@requires_cairo('1.12')
|
||||
def test_acid2():
|
||||
"""A local version of http://acid2.acidtests.org/"""
|
||||
def render(filename):
|
||||
@ -2696,6 +2704,7 @@ def test_acid2():
|
||||
|
||||
|
||||
@assert_no_logs
|
||||
@requires_cairo('1.14')
|
||||
def test_linear_gradients():
|
||||
assert_pixels('linear_gradient', 5, 9, [
|
||||
_+_+_+_+_,
|
||||
|
@ -20,6 +20,7 @@ import pytest
|
||||
from .testing_utils import FONTS, assert_no_logs, capture_logs, almost_equal
|
||||
from ..formatting_structure import boxes
|
||||
from .test_boxes import render_pages as parse
|
||||
from .test_draw import requires_cairo, assert_pixels
|
||||
|
||||
|
||||
def body_children(page):
|
||||
@ -3295,28 +3296,29 @@ def test_table_row_height():
|
||||
|
||||
|
||||
@assert_no_logs
|
||||
@requires_cairo('1.12')
|
||||
def test_table_vertical_align():
|
||||
from .test_draw import _, r, B, assert_pixels
|
||||
assert_pixels('table_vertical_align', 40, 14, [
|
||||
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_,
|
||||
_+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+_,
|
||||
_+B+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+B+_,
|
||||
_+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+B+_+B+B+B+B+_+B+B+B+B+_+B+_,
|
||||
_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+r+r+B+_+B+r+r+B+_+B+_+_+B+_+B+_,
|
||||
_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+r+B+_+B+r+B+_+B+r+r+B+_+B+r+r+B+_+B+r+r+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+r+B+_+B+r+B+_+B+r+r+B+_+B+r+r+B+_+B+r+r+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+r+r+B+_+B+r+r+B+_+B+r+r+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+_+B+_+B+_+_+B+_+B+r+r+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+_+B+_+B+_+_+B+_+B+_+_+B+_+B+_,
|
||||
_+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+B+_+B+B+B+B+_+B+B+B+B+_+B+_,
|
||||
_+B+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+B+_,
|
||||
_+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+_,
|
||||
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_,
|
||||
from .test_draw import _, r, B
|
||||
assert_pixels('table_vertical_align', 39, 14, [
|
||||
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_,
|
||||
_+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+_,
|
||||
_+B+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+B+_,
|
||||
_+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+B+_+B+B+B+B+_+B+B+B+_+B+_,
|
||||
_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+r+r+B+_+B+r+r+B+_+B+_+B+_+B+_,
|
||||
_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+r+B+_+B+r+B+_+B+r+r+B+_+B+r+r+B+_+B+r+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+r+B+_+B+r+B+_+B+r+r+B+_+B+r+r+B+_+B+r+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+B+_+B+r+r+B+_+B+r+r+B+_+B+_+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+_+B+_+B+_+_+B+_+B+_+B+_+B+_,
|
||||
_+B+_+B+_+B+_+B+_+B+_+B+r+B+_+B+_+B+_+B+_+B+_+B+_+_+B+_+B+_+_+B+_+B+_+B+_+B+_,
|
||||
_+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+_+B+B+B+B+_+B+B+B+B+_+B+B+B+_+B+_,
|
||||
_+B+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+B+_,
|
||||
_+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+_,
|
||||
_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_,
|
||||
], '''
|
||||
<style>
|
||||
@page { size: 40px 14px }
|
||||
@page { size: 39px 14px }
|
||||
html { background: #fff; font-size: 1px; color: red }
|
||||
body { margin: 1px; width: 40px; height: 14px }
|
||||
body { margin: 1px; width: 39px; height: 14px }
|
||||
td {
|
||||
width: 1em;
|
||||
padding: 0 !important;
|
||||
@ -3355,8 +3357,7 @@ def test_table_vertical_align():
|
||||
</td>
|
||||
|
||||
<!-- Test padding-top, auto height -->
|
||||
<td style="vertical-align: top; padding-top: 0.25em !important;
|
||||
font-size: 2em">
|
||||
<td style="vertical-align: top; padding-top: 0.5em !important">
|
||||
o o
|
||||
</td>
|
||||
</tr>
|
||||
|
Loading…
Reference in New Issue
Block a user