mirror of
https://github.com/python/cpython.git
synced 2024-11-23 09:54:58 +08:00
gh-51574: Make tempfile.mkdtemp() always return absolute paths (#94612)
Co-authored-by: Éric <merwok@netwok.org> Co-authored-by: AlexWaygood <alex.waygood@gmail.com>
This commit is contained in:
parent
c8c3956d90
commit
32bea69b89
@ -292,6 +292,9 @@ The module defines the following user-callable items:
|
||||
.. versionchanged:: 3.6
|
||||
The *dir* parameter now accepts a :term:`path-like object`.
|
||||
|
||||
.. versionchanged:: 3.12
|
||||
:func:`mkdtemp` now always returns an absolute path, even if *dir* is relative.
|
||||
|
||||
|
||||
.. function:: gettempdir()
|
||||
|
||||
|
@ -457,8 +457,10 @@ uuid
|
||||
tempfile
|
||||
--------
|
||||
|
||||
The :class:`tempfile.NamedTemporaryFile` function has a new optional parameter
|
||||
*delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.)
|
||||
* The :class:`tempfile.NamedTemporaryFile` function has a new optional parameter
|
||||
*delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.)
|
||||
* :func:`tempfile.mkdtemp` now always returns an absolute path, even if the
|
||||
argument provided to the *dir* parameter is a relative path.
|
||||
|
||||
.. _whatsnew-typing-py312:
|
||||
|
||||
|
@ -376,7 +376,7 @@ def mkdtemp(suffix=None, prefix=None, dir=None):
|
||||
continue
|
||||
else:
|
||||
raise
|
||||
return file
|
||||
return _os.path.abspath(file)
|
||||
|
||||
raise FileExistsError(_errno.EEXIST,
|
||||
"No usable temporary directory name found")
|
||||
|
@ -850,6 +850,15 @@ class TestMkdtemp(TestBadTempdir, BaseTestCase):
|
||||
finally:
|
||||
tempfile.tempdir = orig_tempdir
|
||||
|
||||
def test_path_is_absolute(self):
|
||||
# Test that the path returned by mkdtemp with a relative `dir`
|
||||
# argument is absolute
|
||||
try:
|
||||
path = tempfile.mkdtemp(dir=".")
|
||||
self.assertTrue(os.path.isabs(path))
|
||||
finally:
|
||||
os.rmdir(path)
|
||||
|
||||
|
||||
class TestMktemp(BaseTestCase):
|
||||
"""Test mktemp()."""
|
||||
|
@ -0,0 +1,2 @@
|
||||
Make :func:`tempfile.mkdtemp` return absolute paths when its *dir*
|
||||
parameter is relative.
|
Loading…
Reference in New Issue
Block a user