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

Set required version of cairo for tests

This commit is contained in:
Guillaume Ayoub 2018-08-06 18:17:31 +02:00
parent 0834615b78
commit f41c95542d
3 changed files with 28 additions and 7 deletions

View File

@ -271,7 +271,8 @@ def test_python_render(tmpdir):
with open(pdf_file.strpath, 'wb') as pdf_fd: with open(pdf_file.strpath, 'wb') as pdf_fd:
html.write_pdf(pdf_fd, stylesheets=[css]) html.write_pdf(pdf_fd, stylesheets=[css])
assert png_file.read_binary() == png_bytes assert png_file.read_binary() == png_bytes
assert pdf_file.read_binary() == pdf_bytes if cairo.cairo_version() >= 11504:
assert pdf_file.read_binary() == pdf_bytes
x2_png_bytes = html.write_png(stylesheets=[css], resolution=192) x2_png_bytes = html.write_png(stylesheets=[css], resolution=192)
check_png_pattern(x2_png_bytes, x2=True) check_png_pattern(x2_png_bytes, x2=True)
@ -330,7 +331,8 @@ def test_command_line_render(tmpdir):
_run('combined.html out1.png') _run('combined.html out1.png')
_run('combined.html out2.pdf') _run('combined.html out2.pdf')
assert tmpdir.join('out1.png').read_binary() == png_bytes assert tmpdir.join('out1.png').read_binary() == png_bytes
assert tmpdir.join('out2.pdf').read_binary() == pdf_bytes if cairo.cairo_version() >= 11504:
assert tmpdir.join('out2.pdf').read_binary() == pdf_bytes
_run('combined-UTF-16BE.html out3.png --encoding UTF-16BE') _run('combined-UTF-16BE.html out3.png --encoding UTF-16BE')
assert tmpdir.join('out3.png').read_binary() == png_bytes assert tmpdir.join('out3.png').read_binary() == png_bytes
@ -347,12 +349,14 @@ def test_command_line_render(tmpdir):
_run('combined.html out7 -f png') _run('combined.html out7 -f png')
_run('combined.html out8 --format pdf') _run('combined.html out8 --format pdf')
assert tmpdir.join('out7').read_binary() == png_bytes assert tmpdir.join('out7').read_binary() == png_bytes
assert tmpdir.join('out8').read_binary(), pdf_bytes if cairo.cairo_version() >= 11504:
assert tmpdir.join('out8').read_binary(), pdf_bytes
_run('no_css.html out9.png') _run('no_css.html out9.png')
_run('no_css.html out10.png -s style.css') _run('no_css.html out10.png -s style.css')
assert tmpdir.join('out9.png').read_binary() != png_bytes assert tmpdir.join('out9.png').read_binary() != png_bytes
assert tmpdir.join('out10.png').read_binary() == png_bytes if cairo.cairo_version() >= 11504:
assert tmpdir.join('out10.png').read_binary() == png_bytes
stdout = _run('--format png combined.html -') stdout = _run('--format png combined.html -')
assert stdout == png_bytes assert stdout == png_bytes

View File

@ -19,7 +19,7 @@ import pytest
from .. import Attachment, pdf from .. import Attachment, pdf
from ..urls import path2url from ..urls import path2url
from .testing_utils import ( from .testing_utils import (
FakeHTML, assert_no_logs, capture_logs, resource_filename) FakeHTML, assert_no_logs, capture_logs, requires, resource_filename)
# Top of the page is 297mm ~= 842pt # Top of the page is 297mm ~= 842pt
TOP = 842 TOP = 842
@ -59,6 +59,7 @@ def test_page_size_zoom(zoom):
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_bookmarks_1(): def test_bookmarks_1():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string=''' FakeHTML(string='''
@ -99,6 +100,7 @@ def test_bookmarks_2():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_bookmarks_3(): def test_bookmarks_3():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string='<h1>a nbsp…</h1>').write_pdf(target=fileobj) FakeHTML(string='<h1>a nbsp…</h1>').write_pdf(target=fileobj)
@ -111,6 +113,7 @@ def test_bookmarks_3():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_bookmarks_4(): def test_bookmarks_4():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string=''' FakeHTML(string='''
@ -175,6 +178,7 @@ def test_bookmarks_4():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_bookmarks_5(): def test_bookmarks_5():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string=''' FakeHTML(string='''
@ -206,6 +210,7 @@ def test_bookmarks_5():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_bookmarks_6(): def test_bookmarks_6():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string=''' FakeHTML(string='''
@ -253,6 +258,7 @@ def test_bookmarks_6():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_bookmarks_7(): def test_bookmarks_7():
# Reference for the next test. zoom=1 # Reference for the next test. zoom=1
fileobj = io.BytesIO() fileobj = io.BytesIO()
@ -287,6 +293,7 @@ def test_links_none():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_links(): def test_links():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string=''' FakeHTML(string='''
@ -367,6 +374,7 @@ def test_links():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_relative_links(): def test_relative_links():
# Relative URI reference without a base URI: allowed for anchors # Relative URI reference without a base URI: allowed for anchors
fileobj = io.BytesIO() fileobj = io.BytesIO()
@ -398,6 +406,7 @@ def test_relative_links_missing_base():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_relative_links_internal(): def test_relative_links_internal():
# Internal URI reference without a base URI: OK # Internal URI reference without a base URI: OK
fileobj = io.BytesIO() fileobj = io.BytesIO()
@ -414,6 +423,7 @@ def test_relative_links_internal():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_relative_links_anchors(): def test_relative_links_anchors():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML( FakeHTML(
@ -429,6 +439,7 @@ def test_relative_links_anchors():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_missing_links(): def test_missing_links():
fileobj = io.BytesIO() fileobj = io.BytesIO()
with capture_logs() as logs: with capture_logs() as logs:
@ -464,6 +475,7 @@ def test_embed_jpeg():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_document_info(): def test_document_info():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string=''' FakeHTML(string='''
@ -490,6 +502,7 @@ def test_document_info():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_embedded_files_attachments(tmpdir): def test_embedded_files_attachments(tmpdir):
absolute_tmp_file = tmpdir.join('some_file.txt').strpath absolute_tmp_file = tmpdir.join('some_file.txt').strpath
adata = b'12345678' adata = b'12345678'
@ -577,6 +590,7 @@ def test_attachments_data():
@assert_no_logs @assert_no_logs
@requires('cairo', (1, 15, 4))
def test_attachments_none(): def test_attachments_none():
fileobj = io.BytesIO() fileobj = io.BytesIO()
FakeHTML(string=''' FakeHTML(string='''

View File

@ -12,6 +12,8 @@
import io import io
from urllib.parse import urlencode from urllib.parse import urlencode
import cairocffi as cairo
from ..tools import navigator, renderer from ..tools import navigator, renderer
from ..urls import path2url from ..urls import path2url
from .testing_utils import assert_no_logs from .testing_utils import assert_no_logs
@ -72,8 +74,9 @@ def test_navigator(tmpdir):
assert status == '200 OK' assert status == '200 OK'
assert headers['Content-Type'] == 'application/pdf' assert headers['Content-Type'] == 'application/pdf'
assert body.startswith(b'%PDF') assert body.startswith(b'%PDF')
assert b'/URI (http://weasyprint.org)' in body if cairo.cairo_version() >= 11504:
assert b'/Title (Lorem ipsum)' in body assert b'/URI (http://weasyprint.org)' in body
assert b'/Title (Lorem ipsum)' in body
@assert_no_logs @assert_no_logs