diff options
author | Anthony Sottile <asottile@umich.edu> | 2019-09-09 08:54:34 -0700 |
---|---|---|
committer | Zachary Ware <zachary.ware@gmail.com> | 2019-09-09 10:54:34 -0500 |
commit | 370138ba9c29595df773cc057d17ea26fb6f21bd (patch) | |
tree | 2912100b1674bf408ad0628baf4383c7bd4557ea | |
parent | 9488a5289de2ceecdfd2098cd70d215f96c4e745 (diff) | |
download | cpython-git-370138ba9c29595df773cc057d17ea26fb6f21bd.tar.gz |
bpo-35803: Document and test dir=PathLike for tempfile (GH-11644)
Co-Authored-By: Ammar Askar <ammar_askar@hotmail.com>
-rw-r--r-- | Doc/library/tempfile.rst | 6 | ||||
-rw-r--r-- | Lib/test/test_tempfile.py | 16 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Documentation/2019-01-21-14-30-59.bpo-35803.yae6Lq.rst | 2 |
3 files changed, 22 insertions, 2 deletions
diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index 0793e43df0..fff7a7a03e 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -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() diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index bd4db83933..f995f6c9bf 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -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) diff --git a/Misc/NEWS.d/next/Documentation/2019-01-21-14-30-59.bpo-35803.yae6Lq.rst b/Misc/NEWS.d/next/Documentation/2019-01-21-14-30-59.bpo-35803.yae6Lq.rst new file mode 100644 index 0000000000..b8394560e5 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2019-01-21-14-30-59.bpo-35803.yae6Lq.rst @@ -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. |