Hugo 2020-01-04 23:07:59 +02:00
parent ef4a0b2f4c
commit f96763826c
8 changed files with 61 additions and 5 deletions

View File

@ -13,6 +13,33 @@ notifications:
matrix:
fast_finish: true
include:
- python: "3.8"
arch: arm64
- python: "3.7"
arch: arm64
- python: "3.6"
arch: arm64
- python: "3.5"
arch: arm64
- python: "3.8"
arch: ppc64le
- python: "3.7"
arch: ppc64le
- python: "3.6"
arch: ppc64le
- python: "3.5"
arch: ppc64le
- python: "3.8"
arch: s390x
- python: "3.7"
arch: s390x
- python: "3.6"
arch: s390x
- python: "3.5"
arch: s390x
- python: "3.6"
name: "Lint"
env: LINT="true"

View File

@ -16,8 +16,12 @@ pip install pyroma
pip install test-image-results
pip install numpy
if [[ $TRAVIS_PYTHON_VERSION == 3.* ]]; then
# arm64, ppc64le, s390x CPUs:
# "ERROR: Could not find a version that satisfies the requirement pyqt5"
if [[ $TRAVIS_CPU_ARCH == "amd64" ]]; then
sudo apt-get -qq install pyqt5-dev-tools
pip install pyqt5!=5.14.1
fi
fi
# docs only on Python 3.8

View File

@ -5,4 +5,6 @@ set -e
python -m pytest -v -x --cov PIL --cov Tests --cov-report term Tests
# Docs
if [ "$TRAVIS_PYTHON_VERSION" == "3.8" ]; then make doccheck; fi
if [ "$TRAVIS_PYTHON_VERSION" == "3.8" ] && [ "$TRAVIS_CPU_ARCH" == "amd64" ]; then
make doccheck
fi

View File

@ -4,6 +4,7 @@ Helper functions.
import logging
import os
import platform
import subprocess
import sys
import tempfile
@ -348,6 +349,10 @@ def on_ci():
)
def is_big_endian():
return platform.processor() == "s390x"
def is_win32():
return sys.platform.startswith("win32")

View File

@ -1,8 +1,9 @@
from io import BytesIO
import pytest
from PIL import Image, Jpeg2KImagePlugin
from .helper import PillowTestCase
from .helper import PillowTestCase, is_big_endian, on_ci
codecs = dir(Image.core)
@ -165,11 +166,13 @@ class TestFileJpeg2k(PillowTestCase):
jp2.load()
self.assertEqual(jp2.mode, "I;16")
@pytest.mark.xfail(is_big_endian() and on_ci(), reason="Fails on big-endian")
def test_16bit_monochrome_jp2_like_tiff(self):
with Image.open("Tests/images/16bit.cropped.tif") as tiff_16bit:
with Image.open("Tests/images/16bit.cropped.jp2") as jp2:
self.assert_image_similar(jp2, tiff_16bit, 1e-3)
@pytest.mark.xfail(is_big_endian() and on_ci(), reason="Fails on big-endian")
def test_16bit_monochrome_j2k_like_tiff(self):
with Image.open("Tests/images/16bit.cropped.tif") as tiff_16bit:
with Image.open("Tests/images/16bit.cropped.j2k") as j2k:

View File

@ -2,9 +2,17 @@ import unittest
import zlib
from io import BytesIO
import pytest
from PIL import Image, ImageFile, PngImagePlugin
from .helper import PillowLeakTestCase, PillowTestCase, hopper, is_win32
from .helper import (
PillowLeakTestCase,
PillowTestCase,
hopper,
is_big_endian,
is_win32,
on_ci,
)
try:
from PIL import _webp
@ -72,6 +80,7 @@ class TestFilePng(PillowTestCase):
png.crc(cid, s)
return chunks
@pytest.mark.xfail(is_big_endian() and on_ci(), reason="Fails on big-endian")
def test_sanity(self):
# internal version number

View File

@ -1,6 +1,7 @@
import pytest
from PIL import Image
from .helper import PillowTestCase
from .helper import PillowTestCase, is_big_endian, on_ci
try:
from PIL import _webp
@ -36,6 +37,7 @@ class TestFileWebpAnimation(PillowTestCase):
self.assertEqual(im.n_frames, 42)
self.assertTrue(im.is_animated)
@pytest.mark.xfail(is_big_endian() and on_ci(), reason="Fails on big-endian")
def test_write_animation_L(self):
"""
Convert an animated GIF to animated WebP, then compare the
@ -61,6 +63,7 @@ class TestFileWebpAnimation(PillowTestCase):
im.load()
self.assert_image_similar(im, orig.convert("RGBA"), 25.0)
@pytest.mark.xfail(is_big_endian() and on_ci(), reason="Fails on big-endian")
def test_write_animation_RGB(self):
"""
Write an animated WebP from RGB frames, and ensure the frames

View File

@ -1,9 +1,11 @@
import pytest
from PIL import Image
from .helper import PillowTestCase, hopper
from .helper import PillowTestCase, hopper, is_big_endian, on_ci
class TestImageGetExtrema(PillowTestCase):
@pytest.mark.xfail(is_big_endian() and on_ci(), reason="Fails on big-endian")
def test_extrema(self):
def extrema(mode):
return hopper(mode).getextrema()
@ -18,6 +20,7 @@ class TestImageGetExtrema(PillowTestCase):
self.assertEqual(extrema("CMYK"), ((0, 255), (0, 255), (0, 255), (0, 0)))
self.assertEqual(extrema("I;16"), (1, 255))
@pytest.mark.xfail(is_big_endian() and on_ci(), reason="Fails on big-endian")
def test_true_16(self):
with Image.open("Tests/images/16_bit_noise.tif") as im:
self.assertEqual(im.mode, "I;16")