Ensure that the mailbox is closed to prevent problems on Windows with removing

an open file.  This doesn't seem to be a problem in 2.6, but that appears
to be somewhat accidental (specific to reference counting).  When this
gets merged to 3.0, it will make the 3.0 code simpler.
This commit is contained in:
Neal Norwitz 2008-03-26 05:19:41 +00:00
parent 14f0bc7900
commit 22b3e3aff8
1 changed files with 5 additions and 3 deletions

View File

@ -379,7 +379,7 @@ class TestMailbox(TestBase):
def test_flush(self):
# Write changes to disk
self._test_flush_or_close(self._box.flush)
self._test_flush_or_close(self._box.flush, True)
def test_lock_unlock(self):
# Lock and unlock the mailbox
@ -391,14 +391,16 @@ class TestMailbox(TestBase):
def test_close(self):
# Close mailbox and flush changes to disk
self._test_flush_or_close(self._box.close)
self._test_flush_or_close(self._box.close, False)
def _test_flush_or_close(self, method):
def _test_flush_or_close(self, method, should_call_close):
contents = [self._template % i for i in xrange(3)]
self._box.add(contents[0])
self._box.add(contents[1])
self._box.add(contents[2])
method()
if should_call_close:
self._box.close()
self._box = self._factory(self._path)
keys = self._box.keys()
self.assert_(len(keys) == 3)