mirror of https://github.com/python/cpython
Issue #17169: Restore errno in tempfile exceptions.
This commit is contained in:
parent
f4b54adc70
commit
7451a72e2b
|
@ -31,6 +31,7 @@ import warnings as _warnings
|
||||||
import sys as _sys
|
import sys as _sys
|
||||||
import io as _io
|
import io as _io
|
||||||
import os as _os
|
import os as _os
|
||||||
|
import errno as _errno
|
||||||
from random import Random as _Random
|
from random import Random as _Random
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -181,7 +182,9 @@ def _get_default_tempdir():
|
||||||
pass
|
pass
|
||||||
except OSError:
|
except OSError:
|
||||||
break # no point trying more names in this directory
|
break # no point trying more names in this directory
|
||||||
raise FileNotFoundError("No usable temporary directory found in %s" % dirlist)
|
raise FileNotFoundError(_errno.ENOENT,
|
||||||
|
"No usable temporary directory found in %s" %
|
||||||
|
dirlist)
|
||||||
|
|
||||||
_name_sequence = None
|
_name_sequence = None
|
||||||
|
|
||||||
|
@ -214,7 +217,8 @@ def _mkstemp_inner(dir, pre, suf, flags):
|
||||||
except FileExistsError:
|
except FileExistsError:
|
||||||
continue # try again
|
continue # try again
|
||||||
|
|
||||||
raise FileExistsError("No usable temporary file name found")
|
raise FileExistsError(_errno.EEXIST,
|
||||||
|
"No usable temporary file name found")
|
||||||
|
|
||||||
|
|
||||||
# User visible interfaces.
|
# User visible interfaces.
|
||||||
|
@ -301,7 +305,8 @@ def mkdtemp(suffix="", prefix=template, dir=None):
|
||||||
except FileExistsError:
|
except FileExistsError:
|
||||||
continue # try again
|
continue # try again
|
||||||
|
|
||||||
raise FileExistsError("No usable temporary directory name found")
|
raise FileExistsError(_errno.EEXIST,
|
||||||
|
"No usable temporary directory name found")
|
||||||
|
|
||||||
def mktemp(suffix="", prefix=template, dir=None):
|
def mktemp(suffix="", prefix=template, dir=None):
|
||||||
"""User-callable function to return a unique temporary file name. The
|
"""User-callable function to return a unique temporary file name. The
|
||||||
|
@ -330,7 +335,8 @@ def mktemp(suffix="", prefix=template, dir=None):
|
||||||
if not _exists(file):
|
if not _exists(file):
|
||||||
return file
|
return file
|
||||||
|
|
||||||
raise FileExistsError("No usable temporary filename found")
|
raise FileExistsError(_errno.EEXIST,
|
||||||
|
"No usable temporary filename found")
|
||||||
|
|
||||||
|
|
||||||
class _TemporaryFileWrapper:
|
class _TemporaryFileWrapper:
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
# tempfile.py unit tests.
|
# tempfile.py unit tests.
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import errno
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
|
@ -963,8 +964,9 @@ class TestTemporaryDirectory(BaseTestCase):
|
||||||
# (noted as part of Issue #10188)
|
# (noted as part of Issue #10188)
|
||||||
with tempfile.TemporaryDirectory() as nonexistent:
|
with tempfile.TemporaryDirectory() as nonexistent:
|
||||||
pass
|
pass
|
||||||
with self.assertRaises(os.error):
|
with self.assertRaises(FileNotFoundError) as cm:
|
||||||
tempfile.TemporaryDirectory(dir=nonexistent)
|
tempfile.TemporaryDirectory(dir=nonexistent)
|
||||||
|
self.assertEqual(cm.exception.errno, errno.ENOENT)
|
||||||
|
|
||||||
def test_explicit_cleanup(self):
|
def test_explicit_cleanup(self):
|
||||||
# A TemporaryDirectory is deleted when cleaned up
|
# A TemporaryDirectory is deleted when cleaned up
|
||||||
|
|
Loading…
Reference in New Issue