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.
........
This commit is contained in:
Antoine Pitrou 2010-11-10 14:01:16 +00:00
parent 0a69b856d5
commit cb4f929812
3 changed files with 143 additions and 0 deletions

View file

@ -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<some option>
# 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