summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Dörwald <walter@livinglogic.de>2007-04-03 16:53:43 (GMT)
committerWalter Dörwald <walter@livinglogic.de>2007-04-03 16:53:43 (GMT)
commite1a9b42c38c8466775f02a2659cda8e6aa6ca9e5 (patch)
tree7bc6bbb046b234a1f376cb0a7463eba7846ea9ac
parent8bd65000d78cd75a00c073ab9147e3d53ba02a2d (diff)
downloadcpython-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.py24
-rw-r--r--Lib/test/warning_tests.py9
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)