mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
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. ........
This commit is contained in:
parent
a9f48a0d4f
commit
fa8153401a
2 changed files with 55 additions and 4 deletions
|
|
@ -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):
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue