Browse Source

bpo-44515: handle non-refcounted GC in contextlib tests (GH-26910)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
pull/27398/head
Nick Coghlan 5 years ago
committed by GitHub
parent
commit
a2c45e5bcf
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Lib/test/test_contextlib.py
  2. 15
      Lib/test/test_contextlib_async.py
  3. 2
      Misc/NEWS.d/next/Tests/2021-06-26-18-37-36.bpo-44515.e9fO6f.rst

2
Lib/test/test_contextlib.py

@ -231,6 +231,8 @@ def woohoo():
def woohoo(a, b):
a = weakref.ref(a)
b = weakref.ref(b)
# Allow test to work with a non-refcounted GC
support.gc_collect()
self.assertIsNone(a())
self.assertIsNone(b())
yield

15
Lib/test/test_contextlib_async.py

@ -1,7 +1,7 @@
import asyncio
from contextlib import (
asynccontextmanager, AbstractAsyncContextManager,
AsyncExitStack, nullcontext, aclosing)
AsyncExitStack, nullcontext, aclosing, contextmanager)
import functools
from test import support
import unittest
@ -357,14 +357,17 @@ class AclosingTestCase(unittest.TestCase):
async def test_aclosing_bpo41229(self):
state = []
class Resource:
def __del__(self):
@contextmanager
def sync_resource():
try:
yield
finally:
state.append(1)
async def agenfunc():
r = Resource()
yield -1
yield -2
with sync_resource():
yield -1
yield -2
x = agenfunc()
self.assertEqual(state, [])

2
Misc/NEWS.d/next/Tests/2021-06-26-18-37-36.bpo-44515.e9fO6f.rst

@ -0,0 +1,2 @@
Adjust recently added contextlib tests to avoid assuming the use of a
refcounted GC
Loading…
Cancel
Save