MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_iter_importers

Method test_iter_importers

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

Source from the content-addressed store, hash-verified

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

Tested by

no test coverage detected