def test_importlib_loadmodule_relative_pkg_submodule(self):
"""Verify that package is importable relatively"""
print_importers()
assert __package__
if sys.modules.get(__package__ + '.pkg'):
raise unittest.SkipTest("module previously loaded".format(__package__ + '.pkg'))
else:
# load_module returns existing modules from sys.modules by specification
# see https://docs.python.org/3.3/library/importlib.html#importlib.abc.Loader)
pkg_loader = importlib.find_loader(__package__ + '.pkg', [os.path.dirname(__file__)])
pkg = pkg_loader.load_module(__package__ + '.pkg')
# safely adding to sysmodules to be able to perform relative imports in there
#sys.modules.setdefault(nspkg.__name__, nspkg)
# here we should get the module that has already be loaded while executing subpkg
submodule = sys.modules.get(__package__ + '.pkg.submodule')
self.assertTrue(submodule is not None)
self.assertTrue(submodule.TestClassInSubModule is not None)
self.assertTrue(callable(submodule.TestClassInSubModule))
# Note : apparently reload is broken with find_loader (at least on python 3.5)
# _find_spec in reload() apparently returns None...
#
# => not testing reload in that case (this API is obsolete anyway)
test_filefinder2_importlib_loadmodule.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录