mirror of
https://github.com/python/cpython.git
synced 2025-12-09 18:48:05 +00:00
Merged revisions 71465 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r71465 | nick.coghlan | 2009-04-11 23:31:31 +1000 (Sat, 11 Apr 2009) | 1 line Issue 5354: Provide a standardised testing mechanism for doing fresh imports of modules, including the ability to block extension modules in order to test the pure Python fallbacks ........
This commit is contained in:
parent
2d87e42921
commit
fce769e73d
4 changed files with 105 additions and 34 deletions
|
|
@ -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):
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue