def test_hack_tuple_recursive(self): mytuple = (1, 2, 3) self.assertRaises(TypeError, _tuple_set_item, list(mytuple), 1, mytuple) _tuple_set_item(mytuple, 1, mytuple) self.assertIs(mytuple[1], mytuple)
def test_tuple_set_item(self): a = 'foo '.strip() test_tuple = (1, a, 3) new_value = 'hello world' a_refs = getref(a) new_value_refs = getref(new_value) _tuple_set_item(test_tuple, 1, new_value) self.assertEqual(a_refs, getref(a)) self.assertEqual(new_value_refs, getref(new_value))
def run_test(): mytuple = tuple([1, 2, 3]) rfc = getrefptr(mytuple) self.assertTrue(gc.is_tracked(mytuple)) self.assertEqual(rfc.value, 1) b = mytuple self.assertEqual(rfc.value, 2) del b self.assertEqual(rfc.value, 1) _tuple_set_item(mytuple, 1, mytuple) self.assertEqual(rfc.value, 1) mytuple = None del mytuple return rfc