[Python-checkins] cpython (3.1): #9557: eliminate 3 seconds of static overhead from test_mailbox.

r.david.murray python-checkins at python.org
Fri Mar 25 21:21:33 CET 2011


http://hg.python.org/cpython/rev/9a184d8211f5
changeset: 68932:9a184d8211f5
branch: 3.1
parent: 68924:ed02db9921ac
user: R David Murray <rdmurray at bitdance.com>
date: Fri Mar 25 16:03:47 2011 -0400
summary:
 #9557: eliminate 3 seconds of static overhead from test_mailbox.
This patch doesn't quite fix the 'run in a VM with Samba share'
timing problem, but it should at least make it better.
files:
 Lib/test/test_mailbox.py | 18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -741,8 +741,6 @@
 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
@@ -751,15 +749,21 @@
 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.
+ # Put the last modified times more than one second into the past
+ # (because mtime has a one second granularity, a refresh is done
+ # unconditionally if called for within the same second, just in case
+ # the mbox has changed).
+ for subdir in ('cur', 'new'):
+ os.utime(os.path.join(self._box._path, subdir),
+ (time.time()-5,)*2)
+
+ # 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()
 
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /