diff options
author | Andrew M. Kuchling <amk@amk.ca> | 2009-05-03 02:52:20 (GMT) |
---|---|---|
committer | Andrew M. Kuchling <amk@amk.ca> | 2009-05-03 02:52:20 (GMT) |
commit | fa8153401aad10baedc549a1f56a3c7c75e3cbc4 (patch) | |
tree | 0bf479093318313315d45650fab15483487c607a /Lib/test/test_mailbox.py | |
parent | a9f48a0d4f0bad22275b5feb78f63a8a8f00a6f8 (diff) | |
download | cpython-fa8153401aad10baedc549a1f56a3c7c75e3cbc4.zip cpython-fa8153401aad10baedc549a1f56a3c7c75e3cbc4.tar.gz cpython-fa8153401aad10baedc549a1f56a3c7c75e3cbc4.tar.bz2 |
Merged revisions 72213 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72213 | andrew.kuchling | 2009-05-02 15:17:28 -0400 (Sat, 02 May 2009) | 3 lines
#1607951: Make mailbox.Maildir re-read the directories less frequently.
This is done by recording the current time -1sec, and not re-reading unless
the directory mod. times are >= the recorded time.
........
Diffstat (limited to 'Lib/test/test_mailbox.py')
-rw-r--r-- | Lib/test/test_mailbox.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py index 28b9322..655b639 100644 --- a/Lib/test/test_mailbox.py +++ b/Lib/test/test_mailbox.py @@ -740,6 +740,37 @@ class TestMaildir(TestMailbox): perms = st.st_mode self.assertFalse((perms & 0o111)) # Execute bits should all be off. + def test_reread(self): + # Wait for 2 seconds + time.sleep(2) + + # Initially, the mailbox has not been read and the time is null. + assert getattr(self._box, '_last_read', None) is None + + # Refresh mailbox; the times should now be set to something. + self._box._refresh() + assert getattr(self._box, '_last_read', None) is not None + + # Try calling _refresh() again; the modification times shouldn't have + # changed, so the mailbox should not be re-reading. Re-reading causes + # the ._toc attribute to be assigned a new dictionary object, so + # we'll check that the ._toc attribute isn't a different object. + orig_toc = self._box._toc + def refreshed(): + return self._box._toc is not orig_toc + + time.sleep(1) # Wait 1sec to ensure time.time()'s value changes + self._box._refresh() + assert not refreshed() + + # Now, write something into cur and remove it. This changes + # the mtime and should cause a re-read. + filename = os.path.join(self._path, 'cur', 'stray-file') + f = open(filename, 'w') + f.close() + os.unlink(filename) + self._box._refresh() + assert refreshed() class _TestMboxMMDF(TestMailbox): |