MCPcopy Index your code
hub / github.com/python/cpython / test_iter_importers

Method test_iter_importers

Lib/test/test_pkgutil.py:449–494  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

447 # Another awful testing hack to be cleaned up once the test_runpy
448 # helpers are factored out to a common location
449 def test_iter_importers(self):
450 iter_importers = pkgutil.iter_importers
451 get_importer = pkgutil.get_importer
452
453 pkgname = 'spam'
454 modname = 'eggs'
455 dirname = self.create_init(pkgname)
456 pathitem = os.path.join(dirname, pkgname)
457 fullname = '{}.{}'.format(pkgname, modname)
458 sys.modules.pop(fullname, None)
459 sys.modules.pop(pkgname, None)
460 try:
461 self.create_submodule(dirname, pkgname, modname, 0)
462
463 importlib.import_module(fullname)
464
465 importers = list(iter_importers(fullname))
466 expected_importer = get_importer(pathitem)
467 for finder in importers:
468 spec = finder.find_spec(fullname)
469 loader = spec.loader
470 try:
471 loader = loader.loader
472 except AttributeError:
473 # For now we still allow raw loaders from
474 # find_module().
475 pass
476 self.assertIsInstance(finder, importlib.machinery.FileFinder)
477 self.assertEqual(finder, expected_importer)
478 self.assertIsInstance(loader,
479 importlib.machinery.SourceFileLoader)
480 self.assertIsNone(finder.find_spec(pkgname))
481
482 with self.assertRaises(ImportError):
483 list(iter_importers('invalid.module'))
484
485 with self.assertRaises(ImportError):
486 list(iter_importers('.spam'))
487 finally:
488 shutil.rmtree(dirname)
489 del sys.path[0]
490 try:
491 del sys.modules['spam']
492 del sys.modules['spam.eggs']
493 except KeyError:
494 pass
495
496
497 def test_mixed_namespace(self):

Callers

nothing calls this directly

Calls 14

create_initMethod · 0.95
create_submoduleMethod · 0.95
listClass · 0.85
iter_importersFunction · 0.85
get_importerFunction · 0.85
assertIsInstanceMethod · 0.80
assertIsNoneMethod · 0.80
joinMethod · 0.45
formatMethod · 0.45
popMethod · 0.45
import_moduleMethod · 0.45
find_specMethod · 0.45

Tested by

no test coverage detected