summaryrefslogtreecommitdiff
blob: 3bee41bc938aeaf6d2b011ee43eeb43ca41979c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
From c9a5ee46a1112d5f7e51defebeefb1e0ab43111e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@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?= <mgorny@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