Skip to content

Commit 0517223

Browse files
Update tests accordingly
1 parent d075bff commit 0517223

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

Lib/test/test_capi/test_tuple.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,27 @@ def test_tuple_make_single(self):
107107
self.assertEqual(make_single(None), (None,))
108108
self.assertEqual(make_single(True), (True,))
109109

110-
temp = object()
110+
# user class supports gc
111+
class Temp:
112+
pass
113+
114+
temp = Temp()
111115
self.assertEqual(make_single(temp), (temp,))
112116

113117
self.assertRaises(TypeError, make_single, 1, 2)
114118
self.assertRaises(TypeError, make_single)
115119

120+
self.assertFalse(gc.is_tracked(make_single(1)))
121+
self.assertFalse(gc.is_tracked(make_single(None)))
122+
self.assertFalse(gc.is_tracked(make_single(True)))
123+
self.assertTrue(gc.is_tracked(make_single(temp)))
124+
self.assertTrue(gc.is_tracked(make_single([])))
125+
self.assertTrue(gc.is_tracked(make_single({})))
126+
127+
# because we only check type for gc support can't untrack tuple of
128+
# immutable tuples, see maybe_tracked
129+
self.assertTrue(gc.is_tracked(make_single((1, 2))))
130+
116131
def test_tuple_make_pair(self):
117132
# Test PyTuple_MakePair()
118133
make_pair = _testcapi.tuple_make_pair
@@ -121,13 +136,27 @@ def test_tuple_make_pair(self):
121136
self.assertEqual(make_pair(None, None), (None, None))
122137
self.assertEqual(make_pair(True, False), (True, False))
123138

124-
temp = object()
139+
# user class supports gc
140+
class Temp:
141+
pass
142+
temp = Temp()
125143
self.assertEqual(make_pair(temp, temp), (temp, temp))
126144

127145
self.assertRaises(TypeError, make_pair, 1, 2, 3)
128146
self.assertRaises(TypeError, make_pair, 1)
129147
self.assertRaises(TypeError, make_pair)
130148

149+
self.assertFalse(gc.is_tracked(make_pair(1, 2)))
150+
self.assertFalse(gc.is_tracked(make_pair(None, None)))
151+
self.assertFalse(gc.is_tracked(make_pair(True, False)))
152+
self.assertTrue(gc.is_tracked(make_pair(temp, (1, 2))))
153+
self.assertTrue(gc.is_tracked(make_pair(temp, 1)))
154+
self.assertTrue(gc.is_tracked(make_pair([], {})))
155+
156+
# because we only check type for gc support can't untrack tuple of
157+
# immutable tuples, see maybe_tracked
158+
self.assertTrue(gc.is_tracked(make_pair((1, 2), (1, 2))))
159+
131160
def test_tuple_size(self):
132161
# Test PyTuple_Size()
133162
size = _testlimitedcapi.tuple_size

0 commit comments

Comments
 (0)