changeset: 77042:895246f1a06a branch: 3.2 parent: 77039:d15f01b0c1a0 user: Petri Lehtinen date: Fri May 18 21:51:11 2012 +0300 files: Lib/pyclbr.py Lib/test/test_pyclbr.py Misc/ACKS Misc/NEWS description: #14798: pyclbr now raises ImportError instead of KeyError for missing packages diff -r d15f01b0c1a0 -r 895246f1a06a Lib/pyclbr.py --- a/Lib/pyclbr.py Fri May 18 21:19:17 2012 +0300 +++ b/Lib/pyclbr.py Fri May 18 21:51:11 2012 +0300 @@ -128,6 +128,8 @@ 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 diff -r d15f01b0c1a0 -r 895246f1a06a Lib/test/test_pyclbr.py --- a/Lib/test/test_pyclbr.py Fri May 18 21:19:17 2012 +0300 +++ b/Lib/test/test_pyclbr.py Fri May 18 21:51:11 2012 +0300 @@ -167,6 +167,11 @@ 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) diff -r d15f01b0c1a0 -r 895246f1a06a Misc/ACKS --- a/Misc/ACKS Fri May 18 21:19:17 2012 +0300 +++ b/Misc/ACKS Fri May 18 21:51:11 2012 +0300 @@ -332,6 +332,7 @@ Dan Gass Andrew Gaul Stephen M. Gava +Xavier de Gaye Harry Henry Gebel Marius Gedminas Thomas Gellekum diff -r d15f01b0c1a0 -r 895246f1a06a Misc/NEWS --- a/Misc/NEWS Fri May 18 21:19:17 2012 +0300 +++ b/Misc/NEWS Fri May 18 21:51:11 2012 +0300 @@ -63,6 +63,10 @@ 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.

AltStyle によって変換されたページ (->オリジナル) /