1
1
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:
Guillaume Ayoub 2015-04-25 18:36:39 +02:00
parent 6e82d6563e
commit 8f11d27e48
2 changed files with 42 additions and 32 deletions

View File

@ -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, [
_+_+_+_+_,

View File

@ -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>