commit:     5828450895b63114deea9c50b6b5cfb81abb652c
Author:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 13 15:31:08 2020 +0000
Commit:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
CommitDate: Sun Dec 13 15:35:50 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=58284508

dev-python/piexif: PythonCompatUpdate + fix tests

Closes: https://bugs.gentoo.org/732780
Signed-off-by: Sebastian Pipping <sping <AT> gentoo.org>
Package-Manager: Portage-3.0.0, Repoman-2.3.23

 .../files/piexif-1.1.3-tests-pillow-7.2.0.patch    | 40 ++++++++++++++++++++++
 dev-python/piexif/piexif-1.1.3.ebuild              | 14 ++++++--
 2 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/dev-python/piexif/files/piexif-1.1.3-tests-pillow-7.2.0.patch 
b/dev-python/piexif/files/piexif-1.1.3-tests-pillow-7.2.0.patch
new file mode 100644
index 00000000000..b13425a0fc2
--- /dev/null
+++ b/dev-python/piexif/files/piexif-1.1.3-tests-pillow-7.2.0.patch
@@ -0,0 +1,40 @@
+From 5209b53e9689ce28dcd045f384633378d619718f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Wi=C5=9Bniewski?= <v...@vuko.pl>
+Date: Thu, 5 Nov 2020 16:18:52 +0100
+Subject: [PATCH] convert IFDRational to tuples in tests
+
+This fixes tests with Pillow version >= 7.2.0
+---
+ tests/s_test.py | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/tests/s_test.py b/tests/s_test.py
+index 5d105de..a7cad54 100644
+--- a/tests/s_test.py
++++ b/tests/s_test.py
+@@ -9,6 +9,7 @@
+ import time
+ import unittest
+ 
++import PIL
+ from PIL import Image
+ import piexif
+ from piexif import _common, ImageIFD, ExifIFD, GPSIFD, TAGS, 
InvalidImageDataError
+@@ -580,6 +581,17 @@ def test_print_exif(self):
+ # test utility methods----------------------------------------------
+ 
+     def _compare_value(self, v1, v2):
++        if isinstance(v2, PIL.TiffImagePlugin.IFDRational):
++            v2 = (v2.numerator, v2.denominator)
++        if isinstance(v2, tuple):
++            converted_v2 = []
++            for el in v2:
++                if isinstance(el, PIL.TiffImagePlugin.IFDRational):
++                    converted_v2.append((el.numerator, el.denominator))
++                else:
++                    converted_v2.append(el)
++            v2 = tuple(converted_v2)
++
+         if type(v1) != type(v2):
+             if isinstance(v1, tuple):
+                 self.assertEqual(pack_byte(*v1), v2)

diff --git a/dev-python/piexif/piexif-1.1.3.ebuild 
b/dev-python/piexif/piexif-1.1.3.ebuild
index bb976412ab5..d73f2b18435 100644
--- a/dev-python/piexif/piexif-1.1.3.ebuild
+++ b/dev-python/piexif/piexif-1.1.3.ebuild
@@ -3,9 +3,9 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( pypy3 python3_{6,7,8} )
+PYTHON_COMPAT=( pypy3 python3_{6..9} )
 
-inherit distutils-r1
+inherit edos2unix distutils-r1
 
 DESCRIPTION="Exif manipulation with pure Python"
 HOMEPAGE="https://github.com/hMatoba/Piexif
@@ -23,6 +23,16 @@ DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
        test? ( dev-python/pillow[jpeg] )"
 RDEPEND=""
 
+PATCHES=(
+       # From https://github.com/hMatoba/Piexif/pull/109
+       "${FILESDIR}"/${P}-tests-pillow-7.2.0.patch
+)
+
+src_prepare() {
+       edos2unix tests/s_test.py  # to be able to patch it
+       default
+}
+
 python_test() {
        "${PYTHON}" setup.py test || die
 }

Reply via email to