mirror of
https://github.com/python/cpython.git
synced 2025-11-27 05:44:16 +00:00
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
This commit is contained in:
parent
41eb7164df
commit
0f87183cf5
2 changed files with 17 additions and 1 deletions
|
|
@ -578,7 +578,7 @@ class _singlefileMailbox(Mailbox):
|
||||||
self._toc = new_toc
|
self._toc = new_toc
|
||||||
self._pending = False
|
self._pending = False
|
||||||
if self._locked:
|
if self._locked:
|
||||||
_lock_file(new_file, dotlock=False)
|
_lock_file(self._file, dotlock=False)
|
||||||
|
|
||||||
def _pre_mailbox_hook(self, f):
|
def _pre_mailbox_hook(self, f):
|
||||||
"""Called before writing the mailbox to file f."""
|
"""Called before writing the mailbox to file f."""
|
||||||
|
|
|
||||||
|
|
@ -747,6 +747,22 @@ class _TestMboxMMDF(TestMailbox):
|
||||||
self._box.lock()
|
self._box.lock()
|
||||||
self._box.unlock()
|
self._box.unlock()
|
||||||
|
|
||||||
|
def test_relock(self):
|
||||||
|
# Test case for bug #1575506: the mailbox class was locking the
|
||||||
|
# wrong file object in its flush() method.
|
||||||
|
msg = "Subject: sub\n\nbody\n"
|
||||||
|
key1 = self._box.add(msg)
|
||||||
|
self._box.flush()
|
||||||
|
self._box.close()
|
||||||
|
|
||||||
|
self._box = self._factory(self._path)
|
||||||
|
self._box.lock()
|
||||||
|
key2 = self._box.add(msg)
|
||||||
|
self._box.flush()
|
||||||
|
self.assert_(self._box._locked)
|
||||||
|
self._box.close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TestMbox(_TestMboxMMDF):
|
class TestMbox(_TestMboxMMDF):
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue