]> granicus.if.org Git - python/commitdiff
Ensure that the mailbox is closed to prevent problems on Windows with removing
authorNeal Norwitz <nnorwitz@gmail.com>
Wed, 26 Mar 2008 05:19:41 +0000 (05:19 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Wed, 26 Mar 2008 05:19:41 +0000 (05:19 +0000)
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.

Lib/test/test_mailbox.py

index 9206dc453499e4be57e6e415c9f78757dbd29b15..83802c1895aa6fca7e678d3da9623611786fe343 100644 (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)