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):
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.
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);