From 56762bce3fbd532389751251f0177c27be1864ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Wed, 15 Jun 2022 12:04:57 +0200 Subject: [PATCH] Fix tests for Python 3.11 --- fonttools.spec | 8 +++++++- python3.11.patch | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 python3.11.patch diff --git a/fonttools.spec b/fonttools.spec index cb56416..8a2e045 100644 --- a/fonttools.spec +++ b/fonttools.spec @@ -13,6 +13,12 @@ License: MIT URL: https://github.com/fonttools/fonttools/ Source0: https://github.com/%{name}/%{name}/archive/%{version}.tar.gz#/%{pypi_name}-%{version}.tar.gz +# Fix Python 3.11 test failures +# - read LogRecord's msg instead of args on 3.11+ +# - allow new str() form of enums +# Fixes https://bugzilla.redhat.com/2067200 +Patch: python3.11.patch + Requires: python3-fonttools Requires: python3-setuptools BuildArch: noarch @@ -58,7 +64,7 @@ Obsoletes: python3-ufolib <= 2.1.1-11 %{?python_extras_subpkg:%python_extras_subpkg -n python3-fonttools -i %{python3_sitelib}/%{name}-%{version}-py%{python3_version}.egg-info graphite interpolatable lxml plot symfont type1 ufo unicode woff} %prep -%autosetup +%autosetup -p1 rm -rf *.egg-info sed -i '1d' Lib/fontTools/mtiLib/__init__.py diff --git a/python3.11.patch b/python3.11.patch new file mode 100644 index 0000000..ef596dd --- /dev/null +++ b/python3.11.patch @@ -0,0 +1,40 @@ +diff --git a/Tests/pens/cu2quPen_test.py b/Tests/pens/cu2quPen_test.py +index db51787..4ce5b51 100644 +--- a/Tests/pens/cu2quPen_test.py ++++ b/Tests/pens/cu2quPen_test.py +@@ -12,6 +12,7 @@ + # See the License for the specific language governing permissions and + # limitations under the License. + ++import sys + import unittest + + from fontTools.pens.cu2quPen import Cu2QuPen, Cu2QuPointPen +@@ -257,8 +258,12 @@ class TestCu2QuPen(unittest.TestCase, _TestPenMixin): + quadpen.closePath() + + self.assertGreaterEqual(len(log.records), 1) +- self.assertIn("ignore_single_points is deprecated", +- log.records[0].args[0]) ++ if sys.version_info < (3, 11): ++ self.assertIn("ignore_single_points is deprecated", ++ log.records[0].args[0]) ++ else: ++ self.assertIn("ignore_single_points is deprecated", ++ log.records[0].msg) + + # single-point contours were ignored, so the pen commands are empty + self.assertFalse(pen.commands) +diff --git a/Tests/ufoLib/ufoLib_test.py b/Tests/ufoLib/ufoLib_test.py +index 430e7a7..ccb7c8e 100644 +--- a/Tests/ufoLib/ufoLib_test.py ++++ b/Tests/ufoLib/ufoLib_test.py +@@ -35,7 +35,7 @@ def test_formatVersionTuple(ufo_path): + assert reader.formatVersionTuple == (3, 0) + assert reader.formatVersionTuple.major == 3 + assert reader.formatVersionTuple.minor == 0 +- assert str(reader.formatVersionTuple) == "3.0" ++ assert str(reader.formatVersionTuple) in ("3.0", "UFOFormatVersion.FORMAT_3_0") + + + def test_readMetaInfo_errors(ufo_path):