diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2016-09-08 18:12:31 (GMT) |
---|---|---|
committer | Eric Snow <ericsnowcurrently@gmail.com> | 2016-09-08 18:12:31 (GMT) |
commit | f3fd06a2e4d42cf8e4e82a5b6cbff1e5a515aff3 (patch) | |
tree | 41daf3438e6f223089206197f1dba3f843076be3 /Lib | |
parent | e58571b7eaa3f282d7d29f3aead1cc8220bec473 (diff) | |
download | cpython-f3fd06a2e4d42cf8e4e82a5b6cbff1e5a515aff3.zip cpython-f3fd06a2e4d42cf8e4e82a5b6cbff1e5a515aff3.tar.gz cpython-f3fd06a2e4d42cf8e4e82a5b6cbff1e5a515aff3.tar.bz2 |
Issue #28026: Raise ImportError when exec_module() exists but create_module() is missing.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/importlib/_bootstrap.py | 5 | ||||
-rw-r--r-- | Lib/test/test_importlib/test_util.py | 8 |
2 files changed, 3 insertions, 10 deletions
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py index 8cd0262..a531a03 100644 --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -559,9 +559,8 @@ def module_from_spec(spec): # module creation should be used. module = spec.loader.create_module(spec) elif hasattr(spec.loader, 'exec_module'): - _warnings.warn('starting in Python 3.6, loaders defining exec_module() ' - 'must also define create_module()', - DeprecationWarning, stacklevel=2) + raise ImportError('loaders that define exec_module() ' + 'must also define create_module()') if module is None: module = _new_module(spec.name) _init_module_attrs(spec, module) diff --git a/Lib/test/test_importlib/test_util.py b/Lib/test/test_importlib/test_util.py index 2aa1131..d615375 100644 --- a/Lib/test/test_importlib/test_util.py +++ b/Lib/test/test_importlib/test_util.py @@ -47,14 +47,8 @@ class ModuleFromSpecTests: def exec_module(self, module): pass spec = self.machinery.ModuleSpec('test', Loader()) - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter('always') + with self.assertRaises(ImportError): module = self.util.module_from_spec(spec) - self.assertEqual(1, len(w)) - self.assertTrue(issubclass(w[0].category, DeprecationWarning)) - self.assertIn('create_module', str(w[0].message)) - self.assertIsInstance(module, types.ModuleType) - self.assertEqual(module.__name__, spec.name) def test_create_module_returns_None(self): class Loader(self.abc.Loader): |