1
1
mirror of https://github.com/Kozea/WeasyPrint.git synced 2024-10-05 16:37:47 +03:00

Test OpenType features only with Pango 1.38+

This commit is contained in:
Guillaume Ayoub 2016-10-26 18:45:23 +02:00
parent db54e8e3ff
commit fa736a497c
3 changed files with 15 additions and 10 deletions

View File

@ -52,23 +52,25 @@ def save_pixels_to_png(pixels, width, height, filename):
).write_to_png(filename)
def requires_cairo(version):
def requires(library, 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):
def require_version(test):
@functools.wraps(test)
def decorated_test():
if cairo.cairo_version() < version_number:
library_version = getattr(
globals()[library], '%s_version' % library)()
if library_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
return require_version
def assert_pixels(name, expected_width, expected_height, expected_pixels,
@ -1517,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) }
@ -2308,7 +2310,7 @@ def test_overflow():
@assert_no_logs
@requires_cairo('1.12')
@requires('cairo', '1.12')
def test_clip():
"""Test the clip property."""
num = [0]
@ -2750,7 +2752,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):
@ -2775,7 +2777,7 @@ def test_acid2():
@assert_no_logs
@requires_cairo('1.14')
@requires('cairo', '1.14')
def test_linear_gradients():
assert_pixels('linear_gradient', 5, 9, [
_+_+_+_+_,

View File

@ -10,6 +10,7 @@
"""
from .test_draw import requires
from .test_layout import parse
from .testing_utils import assert_no_logs
@ -29,6 +30,7 @@ def test_font_face():
@assert_no_logs
@requires('pango', '1.38')
def test_default():
# Kerning and ligatures are on by default
page, = parse('''
@ -93,6 +95,7 @@ def test_default():
@assert_no_logs
@requires('pango', '1.38')
def test_font_face_descriptors():
page, = parse(
'''

View File

@ -14,7 +14,7 @@ from __future__ import division, unicode_literals
from .testing_utils import assert_no_logs, capture_logs
from .test_boxes import render_pages as parse
from .test_draw import requires_cairo, assert_pixels
from .test_draw import requires, assert_pixels
@assert_no_logs
@ -1480,7 +1480,7 @@ def test_table_row_height():
@assert_no_logs
@requires_cairo('1.12')
@requires('cairo', '1.12')
def test_table_vertical_align():
from .test_draw import _, r, B
assert_pixels('table_vertical_align', 28, 10, [