diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2014-01-04 22:09:53 (GMT) |
---|---|---|
committer | Eric Snow <ericsnowcurrently@gmail.com> | 2014-01-04 22:09:53 (GMT) |
commit | 37148b27ac742bc61087a8413863d70d43476bf4 (patch) | |
tree | 1d475f45c86875345f77065c1410d82168c0da8b /Lib/test/test_pkgutil.py | |
parent | 335e14dd1adb302bc0e5b99534ccfca43c7a4d6c (diff) | |
download | cpython-37148b27ac742bc61087a8413863d70d43476bf4.zip cpython-37148b27ac742bc61087a8413863d70d43476bf4.tar.gz cpython-37148b27ac742bc61087a8413863d70d43476bf4.tar.bz2 |
Issue #19708: Update pkgutil to use the new importer APIs.
Diffstat (limited to 'Lib/test/test_pkgutil.py')
-rw-r--r-- | Lib/test/test_pkgutil.py | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/Lib/test/test_pkgutil.py b/Lib/test/test_pkgutil.py index d73b211..aaa9d8d 100644 --- a/Lib/test/test_pkgutil.py +++ b/Lib/test/test_pkgutil.py @@ -2,6 +2,7 @@ from test.support import run_unittest, unload, check_warnings import unittest import sys import importlib +from importlib.util import spec_from_file_location import pkgutil import os import os.path @@ -103,23 +104,20 @@ class PkgutilTests(unittest.TestCase): class PkgutilPEP302Tests(unittest.TestCase): class MyTestLoader(object): - def load_module(self, fullname): - # Create an empty module - mod = sys.modules.setdefault(fullname, types.ModuleType(fullname)) - mod.__file__ = "<%s>" % self.__class__.__name__ - mod.__loader__ = self - # Make it a package - mod.__path__ = [] + def exec_module(self, mod): # Count how many times the module is reloaded - mod.__dict__['loads'] = mod.__dict__.get('loads',0) + 1 - return mod + mod.__dict__['loads'] = mod.__dict__.get('loads', 0) + 1 def get_data(self, path): return "Hello, world!" class MyTestImporter(object): - def find_module(self, fullname, path=None): - return PkgutilPEP302Tests.MyTestLoader() + def find_spec(self, fullname, path=None, target=None): + loader = PkgutilPEP302Tests.MyTestLoader() + return spec_from_file_location(fullname, + '<%s>' % loader.__class__.__name__, + loader=loader, + submodule_search_locations=[]) def setUp(self): sys.meta_path.insert(0, self.MyTestImporter()) @@ -210,7 +208,8 @@ class ExtendPathTests(unittest.TestCase): importers = list(iter_importers(fullname)) expected_importer = get_importer(pathitem) for finder in importers: - loader = finder.find_module(fullname) + spec = pkgutil._get_spec(finder, fullname) + loader = spec.loader try: loader = loader.loader except AttributeError: @@ -221,7 +220,7 @@ class ExtendPathTests(unittest.TestCase): self.assertEqual(finder, expected_importer) self.assertIsInstance(loader, importlib.machinery.SourceFileLoader) - self.assertIsNone(finder.find_module(pkgname)) + self.assertIsNone(pkgutil._get_spec(finder, pkgname)) with self.assertRaises(ImportError): list(iter_importers('invalid.module')) |