From c9a5ee46a1112d5f7e51defebeefb1e0ab43111e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= 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?= 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