diff -r 6d278f426417 Lib/test/test_import.py --- a/Lib/test/test_import.py Fri Jul 05 18:05:29 2013 -1000 +++ b/Lib/test/test_import.py Sun Jul 07 13:10:54 2013 +0200 @@ -1010,6 +1010,14 @@ finally: importlib.SourceLoader.load_module = old_load_module + def test_from_import_message_for_nonexistent_module(self): + with self.assertRaisesRegexp(ImportError, "^No module named 'bogus'"): + from bogus import foo + + def test_from_import_message_for_existing_module(self): + with self.assertRaisesRegexp(ImportError, "^cannot import name 'bogus'"): + from re import bogus + if __name__ == '__main__': # Test needs to be a package, so we can do relative imports. diff -r 6d278f426417 Python/ceval.c --- a/Python/ceval.c Fri Jul 05 18:05:29 2013 -1000 +++ b/Python/ceval.c Sun Jul 07 13:10:54 2013 +0200 @@ -4588,7 +4588,7 @@ x = PyObject_GetAttr(v, name); if (x == NULL && PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Format(PyExc_ImportError, "cannot import name %S", name); + PyErr_Format(PyExc_ImportError, "cannot import name %R", name); } return x; }