diff options
Diffstat (limited to 'Lib/test/test_warnings.py')
-rw-r--r-- | Lib/test/test_warnings.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py index d04c3ddfa9..1f377ad7f8 100644 --- a/Lib/test/test_warnings.py +++ b/Lib/test/test_warnings.py @@ -10,18 +10,14 @@ from test import warning_tests import warnings as original_warnings -sys.modules['_warnings'] = 0 -del sys.modules['warnings'] - -import warnings as py_warnings - +py_warnings = support.import_fresh_module('warnings', ['_warnings']) +# XXX (ncoghlan 20090412): +# Something in Py3k doesn't like sharing the same instance of +# _warnings between original_warnings and c_warnings +# Will leave issue 5354 open until I understand why 3.x breaks +# without the next line, while 2.x doesn't care del sys.modules['_warnings'] -del sys.modules['warnings'] - -import warnings as c_warnings - -sys.modules['warnings'] = original_warnings - +c_warnings = support.import_fresh_module('warnings') @contextmanager def warnings_state(module): @@ -351,9 +347,21 @@ class WarnTests(unittest.TestCase): class CWarnTests(BaseTest, WarnTests): module = c_warnings + # As an early adopter, we sanity check the + # test.support.import_fresh_module utility function + def test_accelerated(self): + self.assertFalse(original_warnings is self.module) + self.assertFalse(hasattr(self.module.warn, '__code__')) + class PyWarnTests(BaseTest, WarnTests): module = py_warnings + # As an early adopter, we sanity check the + # test.support.import_fresh_module utility function + def test_pure_python(self): + self.assertFalse(original_warnings is self.module) + self.assertTrue(hasattr(self.module.warn, '__code__')) + class WCmdLineTests(unittest.TestCase): |