or __name__ are not set in globals.
Thanks to Stefan Behnel for the bug report.
self.assertEqual(mod.__name__, 'crash.mod')
self.relative_import_test(create, globals_, callback)
+ def test_relative_import_no_globals(self):
+ # No globals for a relative import is an error.
+ with self.assertRaises(KeyError):
+ import_util.import_('sys', level=1)
+
def test_main():
from test.support import run_unittest
Core and Builtins
-----------------
+- Issue #14592: Attempting a relative import w/o __package__ or __name__ set in
+ globals raises a KeyError.
+
- Issue #10854: The ImportError raised when an extension module on Windows
fails to import now uses the new path and name attributes from
Issue #1559549.
}
}
else {
- package = _PyDict_GetItemIdWithError(globals, &PyId___name__);
+ package = _PyDict_GetItemId(globals, &PyId___name__);
if (package == NULL) {
+ PyErr_SetString(PyExc_KeyError, "'__name__' not in globals");
goto error;
}
else if (!PyUnicode_Check(package)) {