Commit 43ae3cea authored by Petri Lehtinen's avatar Petri Lehtinen

#14798: pyclbr now raises ImportError instead of KeyError for missing packages

parents ed363959 8d886046
......@@ -130,6 +130,8 @@ def _readmodule(module, path, inpackage=None):
parent = _readmodule(package, path, inpackage)
if inpackage is not None:
package = "%s.%s" % (inpackage, package)
if not '__path__' in parent:
raise ImportError('No package named {}'.format(package))
return _readmodule(submodule, parent['__path__'], package)
# Search the path for the module
......
......@@ -167,6 +167,11 @@ class PyclbrTest(TestCase):
cm('email.parser')
cm('test.test_pyclbr')
def test_issue_14798(self):
# test ImportError is raised when the first part of a dotted name is
# not a package
self.assertRaises(ImportError, pyclbr.readmodule_ex, 'asyncore.foo')
def test_main():
run_unittest(PyclbrTest)
......
......@@ -361,6 +361,7 @@ Lars Marius Garshol
Dan Gass
Andrew Gaul
Stephen M. Gava
Xavier de Gaye
Harry Henry Gebel
Marius Gedminas
Thomas Gellekum
......
......@@ -38,6 +38,10 @@ Core and Builtins
Library
-------
- Issue #14798: Fix the functions in pyclbr to raise an ImportError
when the first part of a dotted name is not a package. Patch by
Xavier de Gaye.
- Issue #12098: multiprocessing on Windows now starts child processes
using the same sys.flags as the current process. Initial patch by
Sergey Mezentsev.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment