MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_finalize

Method test_finalize

Lib/test/test_weakref.py:2106–2145  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2104 support.gc_collect()
2105
2106 def test_finalize(self):
2107 def add(x,y,z):
2108 res.append(x + y + z)
2109 return x + y + z
2110
2111 a = self.A()
2112
2113 res = []
2114 f = weakref.finalize(a, add, 67, 43, z=89)
2115 self.assertEqual(f.alive, True)
2116 self.assertEqual(f.peek(), (a, add, (67,43), {'z':89}))
2117 self.assertEqual(f(), 199)
2118 self.assertEqual(f(), None)
2119 self.assertEqual(f(), None)
2120 self.assertEqual(f.peek(), None)
2121 self.assertEqual(f.detach(), None)
2122 self.assertEqual(f.alive, False)
2123 self.assertEqual(res, [199])
2124
2125 res = []
2126 f = weakref.finalize(a, add, 67, 43, 89)
2127 self.assertEqual(f.peek(), (a, add, (67,43,89), {}))
2128 self.assertEqual(f.detach(), (a, add, (67,43,89), {}))
2129 self.assertEqual(f(), None)
2130 self.assertEqual(f(), None)
2131 self.assertEqual(f.peek(), None)
2132 self.assertEqual(f.detach(), None)
2133 self.assertEqual(f.alive, False)
2134 self.assertEqual(res, [])
2135
2136 res = []
2137 f = weakref.finalize(a, add, x=67, y=43, z=89)
2138 del a
2139 self._collect_if_necessary()
2140 self.assertEqual(f(), None)
2141 self.assertEqual(f(), None)
2142 self.assertEqual(f.peek(), None)
2143 self.assertEqual(f.detach(), None)
2144 self.assertEqual(f.alive, False)
2145 self.assertEqual(res, [199])
2146
2147 def test_arg_errors(self):
2148 def fin(*args, **kwargs):

Callers

nothing calls this directly

Calls 7

_collect_if_necessaryMethod · 0.95
AMethod · 0.80
fFunction · 0.70
finalizeMethod · 0.45
assertEqualMethod · 0.45
peekMethod · 0.45
detachMethod · 0.45

Tested by

no test coverage detected