mirror of https://github.com/python/cpython
bpo-35803: Document and test dir=PathLike for tempfile (GH-11644)
Co-Authored-By: Ammar Askar <ammar_askar@hotmail.com>
This commit is contained in:
parent
9488a5289d
commit
370138ba9c
|
@ -191,6 +191,9 @@ The module defines the following user-callable items:
|
|||
*suffix* and *prefix* now accept and default to ``None`` to cause
|
||||
an appropriate default value to be used.
|
||||
|
||||
.. versionchanged:: 3.6
|
||||
The *dir* parameter now accepts a :term:`path-like object`.
|
||||
|
||||
|
||||
.. function:: mkdtemp(suffix=None, prefix=None, dir=None)
|
||||
|
||||
|
@ -214,6 +217,9 @@ The module defines the following user-callable items:
|
|||
*suffix* and *prefix* now accept and default to ``None`` to cause
|
||||
an appropriate default value to be used.
|
||||
|
||||
.. versionchanged:: 3.6
|
||||
The *dir* parameter now accepts a :term:`path-like object`.
|
||||
|
||||
|
||||
.. function:: gettempdir()
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ import tempfile
|
|||
import errno
|
||||
import io
|
||||
import os
|
||||
import pathlib
|
||||
import signal
|
||||
import sys
|
||||
import re
|
||||
|
@ -56,6 +57,9 @@ class TestLowLevelInternals(unittest.TestCase):
|
|||
with self.assertRaises(TypeError):
|
||||
tempfile._infer_return_type(b'', None, '')
|
||||
|
||||
def test_infer_return_type_pathlib(self):
|
||||
self.assertIs(str, tempfile._infer_return_type(pathlib.Path('/')))
|
||||
|
||||
|
||||
# Common functionality.
|
||||
|
||||
|
@ -79,8 +83,13 @@ class BaseTestCase(unittest.TestCase):
|
|||
nsuf = nbase[len(nbase)-len(suf):]
|
||||
|
||||
if dir is not None:
|
||||
self.assertIs(type(name), str if type(dir) is str else bytes,
|
||||
"unexpected return type")
|
||||
self.assertIs(
|
||||
type(name),
|
||||
str
|
||||
if type(dir) is str or isinstance(dir, os.PathLike) else
|
||||
bytes,
|
||||
"unexpected return type",
|
||||
)
|
||||
if pre is not None:
|
||||
self.assertIs(type(name), str if type(pre) is str else bytes,
|
||||
"unexpected return type")
|
||||
|
@ -425,6 +434,7 @@ class TestMkstempInner(TestBadTempdir, BaseTestCase):
|
|||
dir = tempfile.mkdtemp()
|
||||
try:
|
||||
self.do_create(dir=dir).write(b"blat")
|
||||
self.do_create(dir=pathlib.Path(dir)).write(b"blat")
|
||||
finally:
|
||||
os.rmdir(dir)
|
||||
|
||||
|
@ -659,6 +669,7 @@ class TestMkstemp(BaseTestCase):
|
|||
dir = tempfile.mkdtemp()
|
||||
try:
|
||||
self.do_create(dir=dir)
|
||||
self.do_create(dir=pathlib.Path(dir))
|
||||
finally:
|
||||
os.rmdir(dir)
|
||||
|
||||
|
@ -728,6 +739,7 @@ class TestMkdtemp(TestBadTempdir, BaseTestCase):
|
|||
dir = tempfile.mkdtemp()
|
||||
try:
|
||||
os.rmdir(self.do_create(dir=dir))
|
||||
os.rmdir(self.do_create(dir=pathlib.Path(dir)))
|
||||
finally:
|
||||
os.rmdir(dir)
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Document and test that ``tempfile`` functions may accept a
|
||||
:term:`path-like object` for the ``dir`` argument. Patch by Anthony Sottile.
|
Loading…
Reference in New Issue