cpython: ca4bf8e10bc0 (original) (raw)

--- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -1513,7 +1513,11 @@ def _find_and_load_unlocked(name, import raise ImportError(msg, name=name) loader = _find_module(name, path) if loader is None:

@@ -1599,10 +1603,16 @@ def _handle_fromlist(module, fromlist, i try: call_with_frames_removed(import, '{}.{}'.format(module.name, x))

--- a/Lib/test/test_importlib/import_/test_api.py +++ b/Lib/test/test_importlib/import_/test_api.py @@ -1,7 +1,22 @@ +from .. import util as importlib_test_util from . import util +import imp +import sys import unittest +class BadLoaderFinder:

+ + class APITest(unittest.TestCase): """Test API-specific details for import (e.g. raising the right @@ -19,6 +34,29 @@ class APITest(unittest.TestCase): with self.assertRaises(ValueError): util.import_('os', globals(), level=-1)

+

+ + def test_main(): from test.support import run_unittest

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,10 @@ What's New in Python 3.3.0 Release Candi Core and Builtins ----------------- +- Issue #15316: When an item in the fromlist for import doesn't exist,

--- a/Python/importlib.h +++ b/Python/importlib.h @@ -3745,8 +3745,8 @@ unsigned char _Py_M__importlib[] = { 1,15,1,6,2,27,1,19,1,117,13,0,0,0,95,115, 97,110,105,116,121,95,99,104,101,99,107,117,20,0,0,0, 78,111,32,109,111,100,117,108,101,32,110,97,109,101,100,32,

};