mirror of https://github.com/python/cpython
#15036: Make a repeated changes and flushes work with single-file mailboxes
This commit is contained in:
commit
a717d563d0
|
@ -675,6 +675,7 @@ class _singlefileMailbox(Mailbox):
|
|||
new_file.write(buffer)
|
||||
new_toc[key] = (new_start, new_file.tell())
|
||||
self._post_message_hook(new_file)
|
||||
self._file_length = new_file.tell()
|
||||
except:
|
||||
new_file.close()
|
||||
os.remove(new_file.name)
|
||||
|
|
|
@ -504,6 +504,17 @@ class TestMailbox(TestBase):
|
|||
# Write changes to disk
|
||||
self._test_flush_or_close(self._box.flush, True)
|
||||
|
||||
def test_popitem_and_flush_twice(self):
|
||||
# See #15036.
|
||||
self._box.add(self._template % 0)
|
||||
self._box.add(self._template % 1)
|
||||
self._box.flush()
|
||||
|
||||
self._box.popitem()
|
||||
self._box.flush()
|
||||
self._box.popitem()
|
||||
self._box.flush()
|
||||
|
||||
def test_lock_unlock(self):
|
||||
# Lock and unlock the mailbox
|
||||
self.assertFalse(os.path.exists(self._get_lock_path()))
|
||||
|
|
|
@ -21,6 +21,10 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #15036: Allow removing or changing multiple items in
|
||||
single-file mailboxes (mbox, MMDF, Babyl) flushing the mailbox
|
||||
between the changes.
|
||||
|
||||
- Issue #14059: Implement multiprocessing.Barrier.
|
||||
|
||||
- Issue #15061: The inappropriately named hmac.secure_compare has been
|
||||
|
|
Loading…
Reference in New Issue