mirror of https://github.com/python/cpython
merge 3.3
This commit is contained in:
commit
5c089314ef
|
@ -324,6 +324,13 @@ class ImportTests(unittest.TestCase):
|
|||
except ImportError:
|
||||
self.fail("fromlist must allow bogus names")
|
||||
|
||||
@cpython_only
|
||||
def test_delete_builtins_import(self):
|
||||
args = ["-c", "del __builtins__.__import__; import os"]
|
||||
popen = script_helper.spawn_python(*args)
|
||||
stdout, stderr = popen.communicate()
|
||||
self.assertIn(b"ImportError", stdout)
|
||||
|
||||
|
||||
@skip_if_dont_write_bytecode
|
||||
class FilePermissionTests(unittest.TestCase):
|
||||
|
|
|
@ -10,6 +10,8 @@ What's New in Python 3.4.0 Alpha 1?
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__.
|
||||
|
||||
- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
|
||||
such as was shipped with Centos 5 and Mac OS X 10.4.
|
||||
|
||||
|
|
|
@ -1403,7 +1403,8 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
|
|||
if (builtins_import == NULL) {
|
||||
builtins_import = _PyDict_GetItemId(interp->builtins, &PyId___import__);
|
||||
if (builtins_import == NULL) {
|
||||
Py_FatalError("__import__ missing");
|
||||
PyErr_SetString(PyExc_ImportError, "__import__ not found");
|
||||
goto error_with_unlock;
|
||||
}
|
||||
}
|
||||
Py_INCREF(builtins_import);
|
||||
|
|
Loading…
Reference in New Issue