mirror of https://github.com/python/cpython.git
Issue #23696: Chain ZipImportError to the OSError
This commit is contained in:
parent
99953006df
commit
fbd6f9ed12
|
@ -450,7 +450,10 @@ def testFileUnreadable(self):
|
|||
fd = os.open(TESTMOD, os.O_CREAT, 000)
|
||||
try:
|
||||
os.close(fd)
|
||||
self.assertZipFailure(TESTMOD)
|
||||
|
||||
with self.assertRaises(zipimport.ZipImportError) as cm:
|
||||
zipimport.zipimporter(TESTMOD)
|
||||
self.assertIsInstance(cm.exception.__context__, PermissionError)
|
||||
finally:
|
||||
# If we leave "the read-only bit" set on Windows, nothing can
|
||||
# delete TESTMOD, and later tests suffer bogus failures.
|
||||
|
|
|
@ -875,8 +875,12 @@ read_directory(PyObject *archive)
|
|||
|
||||
fp = _Py_fopen_obj(archive, "rb");
|
||||
if (fp == NULL) {
|
||||
if (PyErr_ExceptionMatches(PyExc_OSError))
|
||||
if (PyErr_ExceptionMatches(PyExc_OSError)) {
|
||||
PyObject *exc, *val, *tb;
|
||||
PyErr_Fetch(&exc, &val, &tb);
|
||||
PyErr_Format(ZipImportError, "can't open Zip file: %R", archive);
|
||||
_PyErr_ChainExceptions(exc, val, tb);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue