This commit is contained in:
Maciej "RooTer" Urbański 2025-12-23 01:07:38 -05:00 committed by GitHub
commit 9e27d9103e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 0 deletions

View file

@ -174,6 +174,9 @@ The module defines the following user-callable items:
:class:`io.TextIOBase` abstract base classes (depending on whether binary
or text *mode* was specified).
.. versionchanged:: 3.13
The truncate method returns new file size.
.. class:: TemporaryDirectory(suffix=None, prefix=None, dir=None, ignore_cleanup_errors=False, *, delete=True)
@ -394,6 +397,7 @@ Here are some examples of typical usage of the :mod:`tempfile` module::
>>> fp.write(b'Hello world!')
# read data from file
>>> fp.seek(0)
0
>>> fp.read()
b'Hello world!'
# close the file, it will be removed

View file

@ -1513,6 +1513,19 @@ class TestSpooledTemporaryFile(BaseTestCase):
self.assertTrue(f._rolled)
self.assertEqual(os.fstat(f.fileno()).st_size, 20)
def test_truncate_return_size(self):
"SpooledTemporaryFile truncate should return new position"
f = tempfile.SpooledTemporaryFile(max_size=10)
f.write(b'abcdef')
self.assertEqual(f.truncate(3), 3)
def test_seek_return_position(self):
"SpooledTemporaryFile seek should return file position"
f = tempfile.SpooledTemporaryFile(max_size=10)
f.write(b'abcdef')
self.assertEqual(f.seek(3), 3)
self.assertEqual(f.seek(0, 2), 6)
def test_class_getitem(self):
self.assertIsInstance(tempfile.SpooledTemporaryFile[bytes],
types.GenericAlias)

View file

@ -0,0 +1 @@
Make :meth:`tempfile.SpooledTemporaryFile.truncate()` to return new file size.