MCPcopy Index your code
hub / github.com/python/cpython / test_close_clears_frame

Method test_close_clears_frame

Lib/test/test_generators.py:305–331  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

303 self.assertEqual([1,2], list(i for i in C()))
304
305 def test_close_clears_frame(self):
306 # gh-142766: Test that closing a generator clears its frame
307 class DetectDelete:
308 def __init__(self):
309 DetectDelete.deleted = False
310
311 def __del__(self):
312 DetectDelete.deleted = True
313
314 def generator(arg):
315 yield
316
317 # Test a freshly created generator (not suspended)
318 g = generator(DetectDelete())
319 g.close()
320 self.assertTrue(DetectDelete.deleted)
321
322 # Test a suspended generator
323 g = generator(DetectDelete())
324 next(g)
325 g.close()
326 self.assertTrue(DetectDelete.deleted)
327
328 # Clear via gi_frame.clear()
329 g = generator(DetectDelete())
330 g.gi_frame.clear()
331 self.assertTrue(DetectDelete.deleted)
332
333class ModifyUnderlyingIterableTest(unittest.TestCase):
334 iterables = [

Callers

nothing calls this directly

Calls 5

generatorFunction · 0.85
DetectDeleteClass · 0.85
assertTrueMethod · 0.80
closeMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected