diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2013-10-28 18:16:21 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2013-10-28 18:16:21 (GMT) |
commit | d1b48998e5b404387c8f0942197189ba3207c15e (patch) | |
tree | 1f4415275540ec2e228dade3cc59f4a3775d71ac /Lib/test/test_warnings.py | |
parent | ce5f4fba11262453f06ad431803a672be8a950dd (diff) | |
download | cpython-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/test_warnings.py')
-rw-r--r-- | Lib/test/test_warnings.py | 19 |
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() |