Explicit GC for PyPy
This commit is contained in:
parent
165fbbd12a
commit
7fdc8391e2
|
@ -1,11 +1,15 @@
|
|||
import sys
|
||||
|
||||
import pytest
|
||||
from _pytest.pytester import Pytester
|
||||
|
||||
PYPY = hasattr(sys, "pypy_version_info")
|
||||
|
||||
|
||||
@pytest.mark.filterwarnings("default::pytest.PytestUnraisableExceptionWarning")
|
||||
def test_unraisable(pytester: Pytester) -> None:
|
||||
pytester.makepyfile(
|
||||
test_it="""
|
||||
test_it=f"""
|
||||
class BrokenDel:
|
||||
def __del__(self):
|
||||
raise ValueError("del is broken")
|
||||
|
@ -13,6 +17,7 @@ def test_unraisable(pytester: Pytester) -> None:
|
|||
def test_it():
|
||||
obj = BrokenDel()
|
||||
del obj
|
||||
{"import gc; gc.collect()" * PYPY}
|
||||
|
||||
def test_2(): pass
|
||||
"""
|
||||
|
@ -37,7 +42,7 @@ def test_unraisable(pytester: Pytester) -> None:
|
|||
@pytest.mark.filterwarnings("default::pytest.PytestUnraisableExceptionWarning")
|
||||
def test_unraisable_in_setup(pytester: Pytester) -> None:
|
||||
pytester.makepyfile(
|
||||
test_it="""
|
||||
test_it=f"""
|
||||
import pytest
|
||||
|
||||
class BrokenDel:
|
||||
|
@ -48,6 +53,7 @@ def test_unraisable_in_setup(pytester: Pytester) -> None:
|
|||
def broken_del():
|
||||
obj = BrokenDel()
|
||||
del obj
|
||||
{"import gc; gc.collect()" * PYPY}
|
||||
|
||||
def test_it(broken_del): pass
|
||||
def test_2(): pass
|
||||
|
@ -73,7 +79,7 @@ def test_unraisable_in_setup(pytester: Pytester) -> None:
|
|||
@pytest.mark.filterwarnings("default::pytest.PytestUnraisableExceptionWarning")
|
||||
def test_unraisable_in_teardown(pytester: Pytester) -> None:
|
||||
pytester.makepyfile(
|
||||
test_it="""
|
||||
test_it=f"""
|
||||
import pytest
|
||||
|
||||
class BrokenDel:
|
||||
|
@ -85,6 +91,7 @@ def test_unraisable_in_teardown(pytester: Pytester) -> None:
|
|||
yield
|
||||
obj = BrokenDel()
|
||||
del obj
|
||||
{"import gc; gc.collect()" * PYPY}
|
||||
|
||||
def test_it(broken_del): pass
|
||||
def test_2(): pass
|
||||
|
@ -110,7 +117,7 @@ def test_unraisable_in_teardown(pytester: Pytester) -> None:
|
|||
@pytest.mark.filterwarnings("error::pytest.PytestUnraisableExceptionWarning")
|
||||
def test_unraisable_warning_error(pytester: Pytester) -> None:
|
||||
pytester.makepyfile(
|
||||
test_it="""
|
||||
test_it=f"""
|
||||
class BrokenDel:
|
||||
def __del__(self) -> None:
|
||||
raise ValueError("del is broken")
|
||||
|
@ -118,6 +125,7 @@ def test_unraisable_warning_error(pytester: Pytester) -> None:
|
|||
def test_it() -> None:
|
||||
obj = BrokenDel()
|
||||
del obj
|
||||
{"import gc; gc.collect()" * PYPY}
|
||||
|
||||
def test_2(): pass
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue