commit: ff0248cb142dc0330c5669cb7dc514ced19ac08a Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Sun Jun 20 13:18:49 2021 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Sun Jun 20 14:37:31 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ff0248cb
dev-python/matplotlib: Fix test regression Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> .../files/matplotlib-3.4.1-xelatex-test.patch | 74 ++++++++++++++++++++++ dev-python/matplotlib/matplotlib-3.4.1.ebuild | 3 +- 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/dev-python/matplotlib/files/matplotlib-3.4.1-xelatex-test.patch b/dev-python/matplotlib/files/matplotlib-3.4.1-xelatex-test.patch new file mode 100644 index 00000000000..5f1bda49c71 --- /dev/null +++ b/dev-python/matplotlib/files/matplotlib-3.4.1-xelatex-test.patch @@ -0,0 +1,74 @@ +From d0f92f582800b6bd6b4bb2e59cd7e5b3cd6b5948 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgo...@gentoo.org> +Date: Sun, 20 Jun 2021 14:46:17 +0200 +Subject: [PATCH] _GSConverter: handle stray 'GS' in output gracefully + +Search the GS output stream for either "GS<" or "GS>" explicitly rather +than any "GS", in order to prevent the code from wrongly matching stray +"GS". This fixes a recent test regression on Gentoo where the following +output seems to have been wrongly matched: + + **** Error 'gs' ignored -- ExtGState missing from Resources. + ^^ + +Fixes #20472 +--- + lib/matplotlib/testing/compare.py | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git a/lib/matplotlib/testing/compare.py b/lib/matplotlib/testing/compare.py +index 3957188b3e2..27af3e186bd 100644 +--- a/lib/matplotlib/testing/compare.py ++++ b/lib/matplotlib/testing/compare.py +@@ -154,15 +154,17 @@ def encode_and_escape(name): + + b") run flush\n") + self._proc.stdin.flush() + # GS> if nothing left on the stack; GS<n> if n items left on the stack. +- err = self._read_until(b"GS") +- stack = self._read_until(b">") +- if stack or not os.path.exists(dest): +- stack_size = int(stack[1:]) if stack else 0 +- self._proc.stdin.write(b"pop\n" * stack_size) +- # Using the systemencoding should at least get the filenames right. +- raise ImageComparisonFailure( +- (err + b"GS" + stack + b">") +- .decode(sys.getfilesystemencoding(), "replace")) ++ err = self._read_until((b"GS<", b"GS>")) ++ if err.endswith(b"GS<"): ++ stack = self._read_until(b">") ++ if stack or not os.path.exists(dest): ++ stack_size = int(stack[1:]) if stack else 0 ++ self._proc.stdin.write(b"pop\n" * stack_size) ++ # Using the systemencoding should at least get the filenames ++ # right. ++ raise ImageComparisonFailure( ++ (err + b"GS" + stack + b">") ++ .decode(sys.getfilesystemencoding(), "replace")) + + + class _SVGConverter(_Converter): +From d73dd52edf7ec106cf2f6c0ffc79dcda31102ecd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgo...@gentoo.org> +Date: Sun, 20 Jun 2021 15:07:56 +0200 +Subject: [PATCH] increase test_backend_pgf.py::test_xelatex[pdf] tol + +--- + lib/matplotlib/tests/test_backend_pgf.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py +index 55e375311..684f38fb7 100644 +--- a/lib/matplotlib/tests/test_backend_pgf.py ++++ b/lib/matplotlib/tests/test_backend_pgf.py +@@ -80,7 +80,7 @@ def test_common_texification(plain_text, escaped_text): + # test compiling a figure to pdf with xelatex + @needs_xelatex + @pytest.mark.backend('pgf') +-@image_comparison(['pgf_xelatex.pdf'], style='default') ++@image_comparison(['pgf_xelatex.pdf'], style='default', tol=0.8) + def test_xelatex(): + rc_xelatex = {'font.family': 'serif', + 'pgf.rcfonts': False} +-- +2.32.0 + diff --git a/dev-python/matplotlib/matplotlib-3.4.1.ebuild b/dev-python/matplotlib/matplotlib-3.4.1.ebuild index 6ac9f568ad3..a145e84f8c2 100644 --- a/dev-python/matplotlib/matplotlib-3.4.1.ebuild +++ b/dev-python/matplotlib/matplotlib-3.4.1.ebuild @@ -3,7 +3,7 @@ EAPI=7 -PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_COMPAT=( python3_{8..9} ) PYTHON_REQ_USE='tk?,threads(+)' inherit distutils-r1 flag-o-matic virtualx toolchain-funcs prefix @@ -147,6 +147,7 @@ python_prepare_all() { local PATCHES=( "${FILESDIR}"/matplotlib-3.4.0-test.patch "${FILESDIR}"/matplotlib-3.3.3-disable-lto.patch + "${FILESDIR}"/matplotlib-3.4.1-xelatex-test.patch ) # requires jupyter-nbconvert