mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
Fixed a modulefinder crash on certain relative imports.
This commit is contained in:
parent
9f616f48ca
commit
1fac5a4505
3 changed files with 22 additions and 1 deletions
|
|
@ -309,7 +309,10 @@ class ModuleFinder:
|
|||
def _add_badmodule(self, name, caller):
|
||||
if name not in self.badmodules:
|
||||
self.badmodules[name] = {}
|
||||
self.badmodules[name][caller.__name__] = 1
|
||||
if caller:
|
||||
self.badmodules[name][caller.__name__] = 1
|
||||
else:
|
||||
self.badmodules[name]["-"] = 1
|
||||
|
||||
def _safe_import_hook(self, name, caller, fromlist, level=-1):
|
||||
# wrapper for self.import_hook() that won't raise ImportError
|
||||
|
|
|
|||
|
|
@ -190,6 +190,19 @@ a/b/c/e.py
|
|||
a/b/c/f.py
|
||||
"""]
|
||||
|
||||
relative_import_test_3 = [
|
||||
"a.module",
|
||||
["a", "a.module"],
|
||||
["a.bar"],
|
||||
[],
|
||||
"""\
|
||||
a/__init__.py
|
||||
def foo(): pass
|
||||
a/module.py
|
||||
from . import foo
|
||||
from . import bar
|
||||
"""]
|
||||
|
||||
def open_file(path):
|
||||
##print "#", os.path.abspath(path)
|
||||
dirname = os.path.dirname(path)
|
||||
|
|
@ -256,6 +269,9 @@ class ModuleFinderTest(unittest.TestCase):
|
|||
def test_relative_imports_2(self):
|
||||
self._do_test(relative_import_test_2)
|
||||
|
||||
def test_relative_imports_3(self):
|
||||
self._do_test(relative_import_test_3)
|
||||
|
||||
def test_main():
|
||||
distutils.log.set_threshold(distutils.log.WARN)
|
||||
test_support.run_unittest(ModuleFinderTest)
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Fixed a modulefinder crash on certain relative imports.
|
||||
|
||||
- Issue #4150: Pdb's "up" command now works for generator frames in post-mortem
|
||||
debugging.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue