From cb4f9298123f1cfbbe1bdeddfbbadd2aa448140b Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 10 Nov 2010 14:01:16 +0000 Subject: I'm only backporting the tests (which run fine), as well as a shortened version of Lib/test/script_helper.py. Merged revisions 86395 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r86395 | antoine.pitrou | 2010-11-10 14:55:25 +0100 (mer., 10 nov. 2010) | 4 lines Issue #10372: Import the warnings module only after the IO library is initialized, so as to avoid bootstrap issues with the '-W' option. ........ --- Lib/test/test_warnings.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'Lib/test/test_warnings.py') diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py index 85b5cad239..33c4e651c0 100644 --- a/Lib/test/test_warnings.py +++ b/Lib/test/test_warnings.py @@ -7,6 +7,7 @@ import unittest import tempfile import subprocess from test import support +from test.script_helper import assert_python_ok from test import warning_tests @@ -394,6 +395,22 @@ class WCmdLineTests(unittest.TestCase): self.module._setoption('error::Warning::0') self.assertRaises(UserWarning, self.module.warn, 'convert to error') + def test_improper_option(self): + # Same as above, but check that the message is printed out when + # the interpreter is executed. This also checks that options are + # actually parsed at all. + rc, out, err = assert_python_ok("-Wxxx", "-c", "pass") + self.assertIn(b"Invalid -W option ignored: invalid action: 'xxx'", err) + + def test_warnings_bootstrap(self): + # Check that the warnings module does get loaded when -W + # is used (see issue #10372 for an example of silent bootstrap failure). + rc, out, err = assert_python_ok("-Wi", "-c", + "import sys; sys.modules['warnings'].warn('foo', RuntimeWarning)") + # '-Wi' was observed + self.assertFalse(out.strip()) + self.assertNotIn(b'RuntimeWarning', err) + class CWCmdLineTests(BaseTest, WCmdLineTests): module = c_warnings -- cgit v1.2.1