Issue #19421: add an unit test for warnings.warn() during finalization

This commit is contained in:
Victor Stinner 2013-10-28 19:16:21 +01:00
parent ce5f4fba11
commit d1b48998e5
1 changed files with 19 additions and 0 deletions

View File

@ -788,6 +788,25 @@ class BootstrapTest(unittest.TestCase):
env=env)
self.assertEqual(retcode, 0)
class FinalizationTest(unittest.TestCase):
def test_finalization(self):
# Issue #19421: warnings.warn() should not crash
# during Python finalization
code = """
import warnings
warn = warnings.warn
class A:
def __del__(self):
warn("test")
a=A()
"""
rc, out, err = assert_python_ok("-c", code)
# note: "__main__" filename is not correct, it should be the name
# of the script
self.assertEqual(err, b'__main__:7: UserWarning: test')
def setUpModule():
py_warnings.onceregistry.clear()