#14798: pyclbr now raises ImportError instead of KeyError for missing packages
This commit is contained in:
commit
43ae3ceab8
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue