From 68daeb0f8575bd4acb7c7b0e2d0bfee4c6c961b2 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Thu, 30 Oct 2008 20:29:54 +0000 Subject: [PATCH] Merged revisions 67046 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r67046 | thomas.heller | 2008-10-30 21:18:13 +0100 (Do, 30 Okt 2008) | 2 lines Fixed a modulefinder crash on certain relative imports. ........ --- Lib/modulefinder.py | 5 ++++- Lib/test/test_modulefinder.py | 16 ++++++++++++++++ Misc/NEWS | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Lib/modulefinder.py b/Lib/modulefinder.py index ad6a644e1e..7f2bf8b158 100644 --- a/Lib/modulefinder.py +++ b/Lib/modulefinder.py @@ -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 diff --git a/Lib/test/test_modulefinder.py b/Lib/test/test_modulefinder.py index b62758a8b5..9d7f76afdf 100644 --- a/Lib/test/test_modulefinder.py +++ b/Lib/test/test_modulefinder.py @@ -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) diff --git a/Misc/NEWS b/Misc/NEWS index 3d28958267..78ecd34264 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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. -- 2.40.0