Commit 7869a227 authored by Martin Panter's avatar Martin Panter

Issue #26385: Cleanup NamedTemporaryFile if open() fails, by SilentGhost

parent 96421d6f
...@@ -552,7 +552,8 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, ...@@ -552,7 +552,8 @@ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
newline=newline, encoding=encoding) newline=newline, encoding=encoding)
return _TemporaryFileWrapper(file, name, delete) return _TemporaryFileWrapper(file, name, delete)
except Exception: except BaseException:
_os.unlink(name)
_os.close(fd) _os.close(fd)
raise raise
......
...@@ -948,8 +948,16 @@ class TestNamedTemporaryFile(BaseTestCase): ...@@ -948,8 +948,16 @@ class TestNamedTemporaryFile(BaseTestCase):
self.assertRaises(ValueError, tempfile.NamedTemporaryFile) self.assertRaises(ValueError, tempfile.NamedTemporaryFile)
self.assertEqual(len(closed), 1) 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): class TestSpooledTemporaryFile(BaseTestCase):
"""Test SpooledTemporaryFile().""" """Test SpooledTemporaryFile()."""
......
...@@ -84,6 +84,9 @@ Core and Builtins ...@@ -84,6 +84,9 @@ Core and Builtins
Library 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 - Issue #26402: Fix XML-RPC client to retry when the server shuts down a
persistent connection. This was a regression related to the new persistent connection. This was a regression related to the new
http.client.RemoteDisconnected exception in 3.5.0a4. http.client.RemoteDisconnected exception in 3.5.0a4.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment