summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2013-10-28 18:16:21 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2013-10-28 18:16:21 (GMT)
commitd1b48998e5b404387c8f0942197189ba3207c15e (patch)
tree1f4415275540ec2e228dade3cc59f4a3775d71ac /Lib/test
parentce5f4fba11262453f06ad431803a672be8a950dd (diff)
downloadcpython-d1b48998e5b404387c8f0942197189ba3207c15e.zip
cpython-d1b48998e5b404387c8f0942197189ba3207c15e.tar.gz
cpython-d1b48998e5b404387c8f0942197189ba3207c15e.tar.bz2
Issue #19421: add an unit test for warnings.warn() during finalization
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_warnings.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py
index 464ff40..3c54c5a 100644
--- a/Lib/test/test_warnings.py
+++ b/Lib/test/test_warnings.py
@@ -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()