#15036: Make a repeated changes and flushes work with single-file mailboxes
This commit is contained in:
parent
13775221e0
commit
02653f1b11
|
@ -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)
|
||||
|
|
|
@ -500,6 +500,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()))
|
||||
|
|
|
@ -70,6 +70,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 #10133: Make multiprocessing deallocate buffer if socket read
|
||||
fails. Patch by Hallvard B Furuseth.
|
||||
|
||||
|
|
Loading…
Reference in New Issue