From e1a9b42c38c8466775f02a2659cda8e6aa6ca9e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Walter=20D=C3=B6rwald?= Date: Tue, 3 Apr 2007 16:53:43 +0000 Subject: [PATCH] Add tests for the filename. Test that the stacklevel is handled correctly. --- Lib/test/test_warnings.py | 24 ++++++++++++++++++++++++ Lib/test/warning_tests.py | 9 +++++++++ 2 files changed, 33 insertions(+) create mode 100644 Lib/test/warning_tests.py diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py index 671ed02a612..f6c933962fa 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 00000000000..d0519effdc8 --- /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)