diff options
author | Walter Dörwald <walter@livinglogic.de> | 2007-04-03 16:53:43 (GMT) |
---|---|---|
committer | Walter Dörwald <walter@livinglogic.de> | 2007-04-03 16:53:43 (GMT) |
commit | e1a9b42c38c8466775f02a2659cda8e6aa6ca9e5 (patch) | |
tree | 7bc6bbb046b234a1f376cb0a7463eba7846ea9ac | |
parent | 8bd65000d78cd75a00c073ab9147e3d53ba02a2d (diff) | |
download | cpython-e1a9b42c38c8466775f02a2659cda8e6aa6ca9e5.zip cpython-e1a9b42c38c8466775f02a2659cda8e6aa6ca9e5.tar.gz cpython-e1a9b42c38c8466775f02a2659cda8e6aa6ca9e5.tar.bz2 |
Add tests for the filename.
Test that the stacklevel is handled correctly.
-rw-r--r-- | Lib/test/test_warnings.py | 24 | ||||
-rw-r--r-- | Lib/test/warning_tests.py | 9 |
2 files changed, 33 insertions, 0 deletions
diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py index 671ed02..f6c9339 100644 --- a/Lib/test/test_warnings.py +++ b/Lib/test/test_warnings.py @@ -3,6 +3,8 @@ import os import unittest from test import test_support +import warning_tests + # The warnings module isn't easily tested, because it relies on module # globals to store configuration information. setUp() and tearDown() # preserve the current settings to avoid bashing them while running tests. @@ -97,6 +99,28 @@ class TestModule(CatchWarningTest): warnings._setoption('error::Warning::0') self.assertRaises(UserWarning, warnings.warn, 'convert to error') + def test_filename(self): + warning_tests.inner("spam1") + self.assertEqual(msg.filename, "warning_tests.py") + warning_tests.outer("spam2") + self.assertEqual(msg.filename, "warning_tests.py") + + def test_stacklevel(self): + # Test stacklevel argument + # make sure all messages are different, so the warning won't be skipped + warning_tests.inner("spam3", stacklevel=1) + self.assertEqual(msg.filename, "warning_tests.py") + warning_tests.outer("spam4", stacklevel=1) + self.assertEqual(msg.filename, "warning_tests.py") + + warning_tests.inner("spam5", stacklevel=2) + self.assertEqual(msg.filename, "test_warnings.py") + warning_tests.outer("spam6", stacklevel=2) + self.assertEqual(msg.filename, "warning_tests.py") + + warning_tests.inner("spam7", stacklevel=9999) + self.assertEqual(msg.filename, "sys") + def test_main(verbose=None): # Obscure hack so that this test passes after reloads or repeated calls diff --git a/Lib/test/warning_tests.py b/Lib/test/warning_tests.py new file mode 100644 index 0000000..d0519ef --- /dev/null +++ b/Lib/test/warning_tests.py @@ -0,0 +1,9 @@ +# Helper module for testing the skipmodules argument of warnings.warn() + +import warnings + +def outer(message, stacklevel=1): + inner(message, stacklevel) + +def inner(message, stacklevel=1): + warnings.warn(message, stacklevel=stacklevel) |