commit: 92a03fdd4a0d04f0dc00259b74f2fed4b137a111 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Fri Jun 12 13:20:02 2020 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Fri Jun 12 13:20:19 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=92a03fdd
dev-python/ujson: Port to py3.9, fix tests Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> .../ujson/files/ujson-3.0.0-pypy3-test.patch | 80 ++++++++++++++++++++++ dev-python/ujson/ujson-3.0.0.ebuild | 6 +- 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/dev-python/ujson/files/ujson-3.0.0-pypy3-test.patch b/dev-python/ujson/files/ujson-3.0.0-pypy3-test.patch new file mode 100644 index 00000000000..3bee41bc938 --- /dev/null +++ b/dev-python/ujson/files/ujson-3.0.0-pypy3-test.patch @@ -0,0 +1,80 @@ +From c9a5ee46a1112d5f7e51defebeefb1e0ab43111e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgo...@gentoo.org> +Date: Fri, 12 Jun 2020 15:04:57 +0200 +Subject: [PATCH 1/3] Do not depend on specific exception messages in tests + +Fix test_encode_raises_allow_nan() not to depend on specific exception +messages. This fixes test failures on PyPy which just happens to use +different error messages. +--- + tests/test_ujson.py | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/tests/test_ujson.py b/tests/test_ujson.py +index 72018a0..1d41de5 100644 +--- a/tests/test_ujson.py ++++ b/tests/test_ujson.py +@@ -614,18 +614,17 @@ def test_dumps_raises(test_input, expected_exception, expected_message): + + + @pytest.mark.parametrize( +- "test_input, expected_exception, expected_message", ++ "test_input, expected_exception", + [ +- (float("nan"), OverflowError, "Invalid value when encoding double"), +- (float("inf"), OverflowError, "Invalid value when encoding double"), +- (-float("inf"), OverflowError, "Invalid value when encoding double"), +- (12839128391289382193812939, OverflowError, "int too big to convert"), ++ (float("nan"), OverflowError), ++ (float("inf"), OverflowError), ++ (-float("inf"), OverflowError), ++ (12839128391289382193812939, OverflowError), + ], + ) +-def test_encode_raises_allow_nan(test_input, expected_exception, expected_message): ++def test_encode_raises_allow_nan(test_input, expected_exception): + with pytest.raises(expected_exception) as e: + ujson.dumps(test_input, allow_nan=False) +- assert str(e.value) == expected_message + + + @pytest.mark.parametrize( +-- +2.27.0 + +From 66cc0ad8a76d1bef848e36d9bdcaf476047b5605 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgo...@gentoo.org> +Date: Fri, 12 Jun 2020 15:08:27 +0200 +Subject: [PATCH 2/3] Skip GC tests on PyPy + +--- + tests/test_ujson.py | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/tests/test_ujson.py b/tests/test_ujson.py +index 1d41de5..fe20174 100644 +--- a/tests/test_ujson.py ++++ b/tests/test_ujson.py +@@ -215,6 +215,9 @@ def test_encode_dict_conversion(): + assert test_input == ujson.decode(output) + + ++@pytest.mark.skipif( ++ hasattr(sys, "pypy_version_info"), reason="PyPy uses incompatible GC" ++) + def test_encode_dict_values_ref_counting(): + import gc + +@@ -226,6 +229,9 @@ def test_encode_dict_values_ref_counting(): + assert ref_count == sys.getrefcount(value) + + ++@pytest.mark.skipif( ++ hasattr(sys, "pypy_version_info"), reason="PyPy uses incompatible GC" ++) + def test_encode_dict_key_ref_counting(): + import gc + +-- +2.27.0 + diff --git a/dev-python/ujson/ujson-3.0.0.ebuild b/dev-python/ujson/ujson-3.0.0.ebuild index 5679fb2c3fc..60a87e3a088 100644 --- a/dev-python/ujson/ujson-3.0.0.ebuild +++ b/dev-python/ujson/ujson-3.0.0.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{6,7,8} pypy3 ) +PYTHON_COMPAT=( python3_{6..9} pypy3 ) inherit distutils-r1 @@ -22,3 +22,7 @@ DEPEND=" " distutils_enable_tests pytest + +PATCHES=( + "${FILESDIR}"/${P}-pypy3-test.patch +)