From 5a8fd796e9e4a6ec9d705c837f992baca0753d90 Mon Sep 17 00:00:00 2001 From: Eric Soroos Date: Fri, 17 Nov 2017 19:47:05 +0000 Subject: [PATCH 1/2] install the difference engine --- .travis/install.sh | 1 + Tests/helper.py | 36 +++++++++++++++++++++++++++++++----- Tests/test_uploader.py | 18 ++++++++++++++++++ 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 Tests/test_uploader.py diff --git a/.travis/install.sh b/.travis/install.sh index 694a460e9..64ce477f7 100755 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -13,6 +13,7 @@ pip install check-manifest pip install olefile pip install pyroma pip install coverage +pip install test-image-results # docs only on Python 2.7 if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then pip install -r requirements.txt ; fi diff --git a/Tests/helper.py b/Tests/helper.py index 1375eb7e5..442886d5a 100644 --- a/Tests/helper.py +++ b/Tests/helper.py @@ -9,6 +9,16 @@ import unittest from PIL import Image, ImageMath +import logging +logger = logging.getLogger(__name__) + + +HAS_UPLOADER = False +try: + import test_image_results + HAS_UPLOADER = True +except ImportError: + pass def convert_to_comparable(a, b): new_a, new_b = a, b @@ -84,6 +94,13 @@ class PillowTestCase(unittest.TestCase): a.size, b.size, msg or "got size %r, expected %r" % (a.size, b.size)) if a.tobytes() != b.tobytes(): + if HAS_UPLOADER: + try: + url = test_image_results.upload(a, b) + logger.error("Url for test images: %s" %url) + except: + pass + self.fail(msg or "got different content") def assert_image_similar(self, a, b, epsilon, msg=None): @@ -103,11 +120,20 @@ class PillowTestCase(unittest.TestCase): diff += sum(i * num for i, num in enumerate(chdiff.histogram())) ave_diff = float(diff)/(a.size[0]*a.size[1]) - self.assertGreaterEqual( - epsilon, ave_diff, - (msg or '') + - " average pixel value difference %.4f > epsilon %.4f" % ( - ave_diff, epsilon)) + try: + self.assertGreaterEqual( + epsilon, ave_diff, + (msg or '') + + " average pixel value difference %.4f > epsilon %.4f" % ( + ave_diff, epsilon)) + except Exception as e: + if HAS_UPLOADER: + try: + url = test_image_results.upload(a, b) + logger.error("Url for test images: %s" %url) + except: + pass + raise e def assert_warning(self, warn_class, func, *args, **kwargs): import warnings diff --git a/Tests/test_uploader.py b/Tests/test_uploader.py new file mode 100644 index 000000000..70b5a27bf --- /dev/null +++ b/Tests/test_uploader.py @@ -0,0 +1,18 @@ +from helper import unittest, PillowTestCase, hopper + +from PIL import Image + + +class TestUploader(PillowTestCase): + def test_upload_equal(self): + result = hopper('P').convert('RGB') + target = hopper('RGB') + self.assert_image_equal(result, target) + + def test_upload_similar(self): + result = hopper('P').convert('RGB') + target = hopper('RGB') + self.assert_image_similar(result, target, 0) + +if __name__ == '__main__': + unittest.main() From 9a7fbdf32306bfe83094ffdf4d46c2649b4dfb8a Mon Sep 17 00:00:00 2001 From: wiredfool Date: Sat, 25 Nov 2017 11:01:33 +0000 Subject: [PATCH 2/2] disable intentionally failing tests --- Tests/test_uploader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/test_uploader.py b/Tests/test_uploader.py index 70b5a27bf..b52ea10f6 100644 --- a/Tests/test_uploader.py +++ b/Tests/test_uploader.py @@ -4,12 +4,12 @@ from PIL import Image class TestUploader(PillowTestCase): - def test_upload_equal(self): + def check_upload_equal(self): result = hopper('P').convert('RGB') target = hopper('RGB') self.assert_image_equal(result, target) - def test_upload_similar(self): + def check_upload_similar(self): result = hopper('P').convert('RGB') target = hopper('RGB') self.assert_image_similar(result, target, 0)