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

Method test_pkgutil_walk_packages

Lib/test/test_runpy.py:565–599  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

563 self._del_pkg(pkg_dir)
564
565 def test_pkgutil_walk_packages(self):
566 # This is a dodgy hack to use the test_runpy infrastructure to test
567 # issue #15343. Issue #15348 declares this is indeed a dodgy hack ;)
568 import pkgutil
569 max_depth = 4
570 base_name = "__runpy_pkg__"
571 package_suffixes = ["uncle", "uncle.cousin"]
572 module_suffixes = ["uncle.cousin.nephew", base_name + ".sibling"]
573 expected_packages = set()
574 expected_modules = set()
575 for depth in range(1, max_depth):
576 pkg_name = ".".join([base_name] * depth)
577 expected_packages.add(pkg_name)
578 for name in package_suffixes:
579 expected_packages.add(pkg_name + "." + name)
580 for name in module_suffixes:
581 expected_modules.add(pkg_name + "." + name)
582 pkg_name = ".".join([base_name] * max_depth)
583 expected_packages.add(pkg_name)
584 expected_modules.add(pkg_name + ".runpy_test")
585 pkg_dir, mod_fname, mod_name, mod_spec = (
586 self._make_pkg("", max_depth))
587 self.addCleanup(self._del_pkg, pkg_dir)
588 for depth in range(2, max_depth+1):
589 self._add_relative_modules(pkg_dir, "", depth)
590 for moduleinfo in pkgutil.walk_packages([pkg_dir]):
591 self.assertIsInstance(moduleinfo, pkgutil.ModuleInfo)
592 self.assertIsInstance(moduleinfo.module_finder,
593 importlib.machinery.FileFinder)
594 if moduleinfo.ispkg:
595 expected_packages.remove(moduleinfo.name)
596 else:
597 expected_modules.remove(moduleinfo.name)
598 self.assertEqual(len(expected_packages), 0, expected_packages)
599 self.assertEqual(len(expected_modules), 0, expected_modules)
600
601class RunPathTestCase(unittest.TestCase, CodeExecutionMixin):
602 """Unit tests for runpy.run_path"""

Callers

nothing calls this directly

Calls 9

_make_pkgMethod · 0.95
_add_relative_modulesMethod · 0.95
setFunction · 0.85
addCleanupMethod · 0.80
assertIsInstanceMethod · 0.80
joinMethod · 0.45
addMethod · 0.45
removeMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected