summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_importlib/test_api.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2023-05-03 11:55:22 (GMT)
committerGitHub <noreply@github.com>2023-05-03 11:55:22 (GMT)
commit326997829d02458246dfd5b6d03297e2418bde52 (patch)
tree05b94e8dbb81f6b7a8d9054bd773c3cf24e0797e /Lib/test/test_importlib/test_api.py
parentbcea36f8db9ad4fd542b38997e065987e829cb9f (diff)
downloadcpython-326997829d02458246dfd5b6d03297e2418bde52.zip
cpython-326997829d02458246dfd5b6d03297e2418bde52.tar.gz
cpython-326997829d02458246dfd5b6d03297e2418bde52.tar.bz2
gh-98040: Remove find_loader, find_module and other deprecated APIs (#98059)
* Remove deprecated classes from pkgutil * Remove some other PEP 302 obsolescence * Use find_spec instead of load_module * Remove more tests of PEP 302 obsolete APIs * Remove another bunch of tests using obsolete load_modules() * Remove deleted names from __all__ * Remove obsolete footnote * imp is removed * Remove `imp` from generated stdlib names * What's new and blurb * Update zipimport documentation for the removed methods * Fix some Windows tests * Remove any test (or part of a test) that references `find_module()`. * Use assertIsNone() / assertIsNotNone() consistently. * Update Doc/reference/import.rst * We don't need pkgutil._get_spec() any more either * test.test_importlib.fixtures.NullFinder * ...BadLoaderFinder.find_module * ...test_api.InvalidatingNullFinder.find_module * ...test.test_zipimport test of z.find_module * Suppress cross-references to find_loader and find_module * Suppress cross-references to Finder * Suppress cross-references to pkgutil.ImpImporter and pkgutil.ImpLoader --------- Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net> Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
Diffstat (limited to 'Lib/test/test_importlib/test_api.py')
-rw-r--r--Lib/test/test_importlib/test_api.py67
1 files changed, 22 insertions, 45 deletions
diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py
index b3a99dc..ecf2c47 100644
--- a/Lib/test/test_importlib/test_api.py
+++ b/Lib/test/test_importlib/test_api.py
@@ -95,7 +95,8 @@ class ImportModuleTests:
(Frozen_ImportModuleTests,
Source_ImportModuleTests
- ) = test_util.test_both(ImportModuleTests, init=init)
+ ) = test_util.test_both(
+ ImportModuleTests, init=init, util=util, machinery=machinery)
class FindLoaderTests:
@@ -103,29 +104,26 @@ class FindLoaderTests:
FakeMetaFinder = None
def test_sys_modules(self):
- # If a module with __loader__ is in sys.modules, then return it.
+ # If a module with __spec__.loader is in sys.modules, then return it.
name = 'some_mod'
with test_util.uncache(name):
module = types.ModuleType(name)
loader = 'a loader!'
- module.__loader__ = loader
+ module.__spec__ = self.machinery.ModuleSpec(name, loader)
sys.modules[name] = module
- with warnings.catch_warnings():
- warnings.simplefilter('ignore', DeprecationWarning)
- found = self.init.find_loader(name)
- self.assertEqual(loader, found)
+ spec = self.util.find_spec(name)
+ self.assertIsNotNone(spec)
+ self.assertEqual(spec.loader, loader)
def test_sys_modules_loader_is_None(self):
- # If sys.modules[name].__loader__ is None, raise ValueError.
+ # If sys.modules[name].__spec__.loader is None, raise ValueError.
name = 'some_mod'
with test_util.uncache(name):
module = types.ModuleType(name)
module.__loader__ = None
sys.modules[name] = module
with self.assertRaises(ValueError):
- with warnings.catch_warnings():
- warnings.simplefilter('ignore', DeprecationWarning)
- self.init.find_loader(name)
+ self.util.find_spec(name)
def test_sys_modules_loader_is_not_set(self):
# Should raise ValueError
@@ -134,24 +132,20 @@ class FindLoaderTests:
with test_util.uncache(name):
module = types.ModuleType(name)
try:
- del module.__loader__
+ del module.__spec__.loader
except AttributeError:
pass
sys.modules[name] = module
with self.assertRaises(ValueError):
- with warnings.catch_warnings():
- warnings.simplefilter('ignore', DeprecationWarning)
- self.init.find_loader(name)
+ self.util.find_spec(name)
def test_success(self):
# Return the loader found on sys.meta_path.
name = 'some_mod'
with test_util.uncache(name):
with test_util.import_state(meta_path=[self.FakeMetaFinder]):
- with warnings.catch_warnings():
- warnings.simplefilter('ignore', DeprecationWarning)
- warnings.simplefilter('ignore', ImportWarning)
- self.assertEqual((name, None), self.init.find_loader(name))
+ spec = self.util.find_spec(name)
+ self.assertEqual((name, (name, None)), (spec.name, spec.loader))
def test_success_path(self):
# Searching on a path should work.
@@ -159,17 +153,12 @@ class FindLoaderTests:
path = 'path to some place'
with test_util.uncache(name):
with test_util.import_state(meta_path=[self.FakeMetaFinder]):
- with warnings.catch_warnings():
- warnings.simplefilter('ignore', DeprecationWarning)
- warnings.simplefilter('ignore', ImportWarning)
- self.assertEqual((name, path),
- self.init.find_loader(name, path))
+ spec = self.util.find_spec(name, path)
+ self.assertEqual(name, spec.name)
def test_nothing(self):
# None is returned upon failure to find a loader.
- with warnings.catch_warnings():
- warnings.simplefilter('ignore', DeprecationWarning)
- self.assertIsNone(self.init.find_loader('nevergoingtofindthismodule'))
+ self.assertIsNone(self.util.find_spec('nevergoingtofindthismodule'))
class FindLoaderPEP451Tests(FindLoaderTests):
@@ -182,20 +171,8 @@ class FindLoaderPEP451Tests(FindLoaderTests):
(Frozen_FindLoaderPEP451Tests,
Source_FindLoaderPEP451Tests
- ) = test_util.test_both(FindLoaderPEP451Tests, init=init)
-
-
-class FindLoaderPEP302Tests(FindLoaderTests):
-
- class FakeMetaFinder:
- @staticmethod
- def find_module(name, path=None):
- return name, path
-
-
-(Frozen_FindLoaderPEP302Tests,
- Source_FindLoaderPEP302Tests
- ) = test_util.test_both(FindLoaderPEP302Tests, init=init)
+ ) = test_util.test_both(
+ FindLoaderPEP451Tests, init=init, util=util, machinery=machinery)
class ReloadTests:
@@ -380,7 +357,8 @@ class ReloadTests:
(Frozen_ReloadTests,
Source_ReloadTests
- ) = test_util.test_both(ReloadTests, init=init, util=util)
+ ) = test_util.test_both(
+ ReloadTests, init=init, util=util, machinery=machinery)
class InvalidateCacheTests:
@@ -390,8 +368,6 @@ class InvalidateCacheTests:
class InvalidatingNullFinder:
def __init__(self, *ignored):
self.called = False
- def find_module(self, *args):
- return None
def invalidate_caches(self):
self.called = True
@@ -416,7 +392,8 @@ class InvalidateCacheTests:
(Frozen_InvalidateCacheTests,
Source_InvalidateCacheTests
- ) = test_util.test_both(InvalidateCacheTests, init=init)
+ ) = test_util.test_both(
+ InvalidateCacheTests, init=init, util=util, machinery=machinery)
class FrozenImportlibTests(unittest.TestCase):