Issue #26385: Cleanup NamedTemporaryFile if open() fails, by SilentGhost
This commit is contained in:
parent
96421d6f11
commit
7869a22779
|
@ -552,7 +552,8 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
|
|||
newline=newline, encoding=encoding)
|
||||
|
||||
return _TemporaryFileWrapper(file, name, delete)
|
||||
except Exception:
|
||||
except BaseException:
|
||||
_os.unlink(name)
|
||||
_os.close(fd)
|
||||
raise
|
||||
|
||||
|
|
|
@ -948,8 +948,16 @@ class TestNamedTemporaryFile(BaseTestCase):
|
|||
self.assertRaises(ValueError, tempfile.NamedTemporaryFile)
|
||||
self.assertEqual(len(closed), 1)
|
||||
|
||||
# How to test the mode and bufsize parameters?
|
||||
def test_bad_mode(self):
|
||||
dir = tempfile.mkdtemp()
|
||||
self.addCleanup(support.rmtree, dir)
|
||||
with self.assertRaises(ValueError):
|
||||
tempfile.NamedTemporaryFile(mode='wr', dir=dir)
|
||||
with self.assertRaises(TypeError):
|
||||
tempfile.NamedTemporaryFile(mode=2, dir=dir)
|
||||
self.assertEqual(os.listdir(dir), [])
|
||||
|
||||
# How to test the mode and bufsize parameters?
|
||||
|
||||
class TestSpooledTemporaryFile(BaseTestCase):
|
||||
"""Test SpooledTemporaryFile()."""
|
||||
|
|
|
@ -84,6 +84,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #26385: Remove the file if the internal open() call in
|
||||
NamedTemporaryFile() fails. Patch by Silent Ghost.
|
||||
|
||||
- Issue #26402: Fix XML-RPC client to retry when the server shuts down a
|
||||
persistent connection. This was a regression related to the new
|
||||
http.client.RemoteDisconnected exception in 3.5.0a4.
|
||||
|
|
Loading…
Reference in New Issue