Commit 7d1d540c authored by Andrew M. Kuchling's avatar Andrew M. Kuchling

[Bug #1575506] The _singlefileMailbox class was using the wrong file object in...

[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
parent 3d6a834e
...@@ -578,7 +578,7 @@ class _singlefileMailbox(Mailbox): ...@@ -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): ...@@ -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):
......
...@@ -105,6 +105,9 @@ Library ...@@ -105,6 +105,9 @@ Library
- Bug #1565661: in webbrowser, split() the command for the default - Bug #1565661: in webbrowser, split() the command for the default
GNOME browser in case it is a command with args. GNOME browser in case it is a command with args.
- Bug #1575506: Single-file mailboxes didn't re-lock properly in
their flush() method.
- Bug #1576241: fix functools.wraps() to work on built-in functions. - Bug #1576241: fix functools.wraps() to work on built-in functions.
- Fix a bug in traceback.format_exception_only() that led to an error - Fix a bug in traceback.format_exception_only() that led to an error
......
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