@@ -121,59 +121,34 @@ def test_tuple_pack(self):
121121 # CRASHES pack(2, [1])
122122
123123 def test_tuple_from_pair (self ):
124- # Test _PyTuple_FromPair()
125- tuple_from_pair = _testinternalcapi ._tuple_from_pair
126-
127- self .assertEqual (tuple_from_pair (1 , 2 ), (1 , 2 ))
128- self .assertEqual (tuple_from_pair (None , None ), (None , None ))
129- self .assertEqual (tuple_from_pair (True , False ), (True , False ))
130-
131- # user class supports gc
132- class Temp :
133- pass
134- temp = Temp ()
135- temp_rc = getrefcount (temp )
136- self .assertEqual (tuple_from_pair (temp , temp ), (temp , temp ))
137- self .assertEqual (getrefcount (temp ), temp_rc )
138-
139- self .assertRaises (TypeError , tuple_from_pair , 1 , 2 , 3 )
140- self .assertRaises (TypeError , tuple_from_pair , 1 )
141- self .assertRaises (TypeError , tuple_from_pair )
142-
143- self .assertFalse (gc .is_tracked (tuple_from_pair (1 , 2 )))
144- self .assertFalse (gc .is_tracked (tuple_from_pair (None , None )))
145- self .assertFalse (gc .is_tracked (tuple_from_pair (True , False )))
146- self .assertTrue (gc .is_tracked (tuple_from_pair (temp , (1 , 2 ))))
147- self .assertTrue (gc .is_tracked (tuple_from_pair (temp , 1 )))
148- self .assertTrue (gc .is_tracked (tuple_from_pair ([], {})))
149-
150- def test_tuple_from_pair_steal (self ):
151- # Test _PyTuple_FromPairSteal()
152- tuple_from_pair = _testinternalcapi ._tuple_from_pair_steal
153-
154- self .assertEqual (tuple_from_pair (1 , 2 ), (1 , 2 ))
155- self .assertEqual (tuple_from_pair (None , None ), (None , None ))
156- self .assertEqual (tuple_from_pair (True , False ), (True , False ))
157-
158- # user class supports gc
159- class Temp :
160- pass
161- temp = Temp ()
162- temp_rc = getrefcount (temp )
163- self .assertEqual (tuple_from_pair (temp , temp ), (temp , temp ))
164- self .assertEqual (getrefcount (temp ), temp_rc )
165-
166- self .assertRaises (TypeError , tuple_from_pair , 1 , 2 , 3 )
167- self .assertRaises (TypeError , tuple_from_pair , 1 )
168- self .assertRaises (TypeError , tuple_from_pair )
169-
170- self .assertFalse (gc .is_tracked (tuple_from_pair (1 , 2 )))
171- self .assertFalse (gc .is_tracked (tuple_from_pair (None , None )))
172- self .assertFalse (gc .is_tracked (tuple_from_pair (True , False )))
173- self .assertTrue (gc .is_tracked (tuple_from_pair (temp , (1 , 2 ))))
174- self .assertTrue (gc .is_tracked (tuple_from_pair (temp , 1 )))
175- self .assertTrue (gc .is_tracked (tuple_from_pair ([], {})))
176-
124+ # Test _PyTuple_FromPair, _PyTuple_FromPairSteal
125+ ctors = (("_PyTuple_FromPair" , _testinternalcapi ._tuple_from_pair ),
126+ ("_PyTuple_FromPairSteal" , _testinternalcapi ._tuple_from_pair_steal ))
127+
128+ for name , ctor in ctors :
129+ with self .subTest (name ):
130+ self .assertEqual (ctor (1 , 2 ), (1 , 2 ))
131+ self .assertEqual (ctor (None , None ), (None , None ))
132+ self .assertEqual (ctor (True , False ), (True , False ))
133+
134+ # user class supports gc
135+ class Temp :
136+ pass
137+ temp = Temp ()
138+ temp_rc = getrefcount (temp )
139+ self .assertEqual (ctor (temp , temp ), (temp , temp ))
140+ self .assertEqual (getrefcount (temp ), temp_rc )
141+
142+ self .assertRaises (TypeError , ctor , 1 , 2 , 3 )
143+ self .assertRaises (TypeError , ctor , 1 )
144+ self .assertRaises (TypeError , ctor )
145+
146+ self .assertFalse (gc .is_tracked (ctor (1 , 2 )))
147+ self .assertFalse (gc .is_tracked (ctor (None , None )))
148+ self .assertFalse (gc .is_tracked (ctor (True , False )))
149+ self .assertTrue (gc .is_tracked (ctor (temp , (1 , 2 ))))
150+ self .assertTrue (gc .is_tracked (ctor (temp , 1 )))
151+ self .assertTrue (gc .is_tracked (ctor ([], {})))
177152
178153 def test_tuple_size (self ):
179154 # Test PyTuple_Size()
0 commit comments