mirror of https://github.com/python/cpython
#14798: pyclbr now raises ImportError instead of KeyError for missing packages
This commit is contained in:
parent
1033b310a3
commit
8d88604682
|
@ -128,6 +128,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)
|
||||
|
|
|
@ -332,6 +332,7 @@ Lars Marius Garshol
|
|||
Dan Gass
|
||||
Andrew Gaul
|
||||
Stephen M. Gava
|
||||
Xavier de Gaye
|
||||
Harry Henry Gebel
|
||||
Marius Gedminas
|
||||
Thomas Gellekum
|
||||
|
|
|
@ -63,6 +63,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 #14829: Fix bisect and range() indexing with large indices
|
||||
(>= 2 ** 32) under 64-bit Windows.
|
||||
|
||||
|
|
Loading…
Reference in New Issue