diff options
author | Brett Cannon <brett@python.org> | 2012-04-13 01:09:01 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2012-04-13 01:09:01 (GMT) |
commit | bbb6680ee5650ad1096eba0c86286342c3d08468 (patch) | |
tree | 2b17a1b8beb11db23edf34adbc5684fadc829139 /Lib/importlib/test | |
parent | 79ec55e980d7b205bbc78d44e0892d0ef37d3abb (diff) | |
download | cpython-bbb6680ee5650ad1096eba0c86286342c3d08468.zip cpython-bbb6680ee5650ad1096eba0c86286342c3d08468.tar.gz cpython-bbb6680ee5650ad1096eba0c86286342c3d08468.tar.bz2 |
Have importlib take advantage of ImportError's new 'name' and 'path'
attributes.
Diffstat (limited to 'Lib/importlib/test')
-rw-r--r-- | Lib/importlib/test/builtin/test_loader.py | 9 | ||||
-rw-r--r-- | Lib/importlib/test/extension/test_loader.py | 6 | ||||
-rw-r--r-- | Lib/importlib/test/frozen/test_loader.py | 6 | ||||
-rw-r--r-- | Lib/importlib/test/import_/test_caching.py | 3 | ||||
-rw-r--r-- | Lib/importlib/test/import_/test_packages.py | 6 | ||||
-rw-r--r-- | Lib/importlib/test/source/test_abc_loader.py | 11 | ||||
-rw-r--r-- | Lib/importlib/test/source/test_file_loader.py | 16 |
7 files changed, 39 insertions, 18 deletions
diff --git a/Lib/importlib/test/builtin/test_loader.py b/Lib/importlib/test/builtin/test_loader.py index 1a8539b..ec126c9 100644 --- a/Lib/importlib/test/builtin/test_loader.py +++ b/Lib/importlib/test/builtin/test_loader.py @@ -54,15 +54,17 @@ class LoaderTests(abc.LoaderTests): def test_unloadable(self): name = 'dssdsdfff' assert name not in sys.builtin_module_names - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: self.load_module(name) + self.assertEqual(cm.exception.name, name) def test_already_imported(self): # Using the name of a module already imported but not a built-in should # still fail. assert hasattr(importlib, '__file__') # Not a built-in. - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: self.load_module('importlib') + self.assertEqual(cm.exception.name, 'importlib') class InspectLoaderTests(unittest.TestCase): @@ -88,8 +90,9 @@ class InspectLoaderTests(unittest.TestCase): # Modules not built-in should raise ImportError. for meth_name in ('get_code', 'get_source', 'is_package'): method = getattr(machinery.BuiltinImporter, meth_name) - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: method(builtin_util.BAD_NAME) + self.assertRaises(builtin_util.BAD_NAME) diff --git a/Lib/importlib/test/extension/test_loader.py b/Lib/importlib/test/extension/test_loader.py index 4a783db..9e5edad 100644 --- a/Lib/importlib/test/extension/test_loader.py +++ b/Lib/importlib/test/extension/test_loader.py @@ -46,8 +46,10 @@ class LoaderTests(abc.LoaderTests): pass def test_unloadable(self): - with self.assertRaises(ImportError): - self.load_module('asdfjkl;') + name = 'asdfjkl;' + with self.assertRaises(ImportError) as cm: + self.load_module(name) + self.assertEqual(cm.exception.name, name) def test_main(): diff --git a/Lib/importlib/test/frozen/test_loader.py b/Lib/importlib/test/frozen/test_loader.py index b685ef5..91d73fa 100644 --- a/Lib/importlib/test/frozen/test_loader.py +++ b/Lib/importlib/test/frozen/test_loader.py @@ -57,8 +57,9 @@ class LoaderTests(abc.LoaderTests): def test_unloadable(self): assert machinery.FrozenImporter.find_module('_not_real') is None - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: machinery.FrozenImporter.load_module('_not_real') + self.assertEqual(cm.exception.name, '_not_real') class InspectLoaderTests(unittest.TestCase): @@ -92,8 +93,9 @@ class InspectLoaderTests(unittest.TestCase): # Raise ImportError for modules that are not frozen. for meth_name in ('get_code', 'get_source', 'is_package'): method = getattr(machinery.FrozenImporter, meth_name) - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: method('importlib') + self.assertEqual(cm.exception.name, 'importlib') def test_main(): diff --git a/Lib/importlib/test/import_/test_caching.py b/Lib/importlib/test/import_/test_caching.py index 48dc643..3baff55 100644 --- a/Lib/importlib/test/import_/test_caching.py +++ b/Lib/importlib/test/import_/test_caching.py @@ -34,8 +34,9 @@ class UseCache(unittest.TestCase): name = 'using_None' with util.uncache(name): sys.modules[name] = None - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: import_util.import_(name) + self.assertEqual(cm.exception.name, name) def create_mock(self, *names, return_=None): mock = util.mock_modules(*names) diff --git a/Lib/importlib/test/import_/test_packages.py b/Lib/importlib/test/import_/test_packages.py index 58be433..e756ee4 100644 --- a/Lib/importlib/test/import_/test_packages.py +++ b/Lib/importlib/test/import_/test_packages.py @@ -19,14 +19,16 @@ class ParentModuleTests(unittest.TestCase): def test_bad_parent(self): with util.mock_modules('pkg.module') as mock: with util.import_state(meta_path=[mock]): - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: import_util.import_('pkg.module') + self.assertEqual(cm.exception.name, 'pkg') def test_module_not_package(self): # Try to import a submodule from a non-package should raise ImportError. assert not hasattr(sys, '__path__') - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: import_util.import_('sys.no_submodules_here') + self.assertEqual(cm.exception.name, 'sys.no_submodules_here') def test_module_not_package_but_side_effects(self): # If a module injects something into sys.modules as a side-effect, then diff --git a/Lib/importlib/test/source/test_abc_loader.py b/Lib/importlib/test/source/test_abc_loader.py index 01acda4..b1b1204 100644 --- a/Lib/importlib/test/source/test_abc_loader.py +++ b/Lib/importlib/test/source/test_abc_loader.py @@ -471,8 +471,9 @@ class BadBytecodeFailureTests(unittest.TestCase): {'path': os.path.join('path', 'to', 'mod'), 'magic': bad_magic}} mock = PyPycLoaderMock({name: None}, bc) - with util.uncache(name), self.assertRaises(ImportError): + with util.uncache(name), self.assertRaises(ImportError) as cm: mock.load_module(name) + self.assertEqual(cm.exception.name, name) def test_no_bytecode(self): # Missing code object bytecode should lead to an EOFError. @@ -516,8 +517,9 @@ class MissingPathsTests(unittest.TestCase): # If all *_path methods return None, raise ImportError. name = 'mod' mock = PyPycLoaderMock({name: None}) - with util.uncache(name), self.assertRaises(ImportError): + with util.uncache(name), self.assertRaises(ImportError) as cm: mock.load_module(name) + self.assertEqual(cm.exception.name, name) def test_source_path_ImportError(self): # An ImportError from source_path should trigger an ImportError. @@ -533,7 +535,7 @@ class MissingPathsTests(unittest.TestCase): mock = PyPycLoaderMock({name: os.path.join('path', 'to', 'mod')}) bad_meth = types.MethodType(raise_ImportError, mock) mock.bytecode_path = bad_meth - with util.uncache(name), self.assertRaises(ImportError): + with util.uncache(name), self.assertRaises(ImportError) as cm: mock.load_module(name) @@ -594,8 +596,9 @@ class SourceOnlyLoaderTests(SourceLoaderTestHarness): def raise_IOError(path): raise IOError self.loader.get_data = raise_IOError - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: self.loader.get_source(self.name) + self.assertEqual(cm.exception.name, self.name) def test_is_package(self): # Properly detect when loading a package. diff --git a/Lib/importlib/test/source/test_file_loader.py b/Lib/importlib/test/source/test_file_loader.py index 21e718f..cb1c317 100644 --- a/Lib/importlib/test/source/test_file_loader.py +++ b/Lib/importlib/test/source/test_file_loader.py @@ -232,8 +232,10 @@ class BadBytecodeTest(unittest.TestCase): lambda bc: bc[:12] + marshal.dumps(b'abcd'), del_source=del_source) file_path = mapping['_temp'] if not del_source else bytecode_path - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: self.import_(file_path, '_temp') + self.assertEqual(cm.exception.name, '_temp') + self.assertEqual(cm.exception.path, bytecode_path) def _test_bad_marshal(self, *, del_source=False): with source_util.create_modules('_temp') as mapping: @@ -381,15 +383,19 @@ class SourcelessLoaderBadBytecodeTest(BadBytecodeTest): def test_empty_file(self): def test(name, mapping, bytecode_path): - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: self.import_(bytecode_path, name) + self.assertEqual(cm.exception.name, name) + self.assertEqual(cm.exception.path, bytecode_path) self._test_empty_file(test, del_source=True) def test_partial_magic(self): def test(name, mapping, bytecode_path): - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: self.import_(bytecode_path, name) + self.assertEqual(cm.exception.name, name) + self.assertEqual(cm.exception.path, bytecode_path) self._test_partial_magic(test, del_source=True) def test_magic_only(self): @@ -401,8 +407,10 @@ class SourcelessLoaderBadBytecodeTest(BadBytecodeTest): def test_bad_magic(self): def test(name, mapping, bytecode_path): - with self.assertRaises(ImportError): + with self.assertRaises(ImportError) as cm: self.import_(bytecode_path, name) + self.assertEqual(cm.exception.name, name) + self.assertEqual(cm.exception.path, bytecode_path) self._test_bad_magic(test, del_source=True) |