Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
The first hunk changes the colon to an ! like other Windows variants.
We need to always wait on the child so the lock gets released and
no other tests fail. This is the try/finally in the second hunk.
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index 45dd118..6cdc441 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -1,4 +1,5 @@
import os
+import sys
import time
import stat
import socket
@@ -461,7 +462,7 @@
def setUp(self):
TestMailbox.setUp(self)
- if os.name in ('nt', 'os2'):
+ if os.name in ('nt', 'os2') or sys.platform == 'cygwin':
self._box.colon = '!'
def test_add_MM(self):
@@ -736,11 +737,13 @@
# In the parent, sleep a bit to give the child time to acquire
# the lock.
time.sleep(0.5)
- self.assertRaises(mailbox.ExternalClashError,
- self._box.lock)
+ try:
+ self.assertRaises(mailbox.ExternalClashError,
+ self._box.lock)
+ finally:
+ # Wait for child to exit. Locking should now succeed.
+ exited_pid, status = os.waitpid(pid, 0)
- # Wait for child to exit. Locking should now succeed.
- exited_pid, status = os.waitpid(pid, 0)
self._box.lock()
self._box.unlock()
diff --git a/Misc/NEWS b/Misc/NEWS
index 25d0294..f2fc704 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -58,6 +58,8 @@
Tests
-----
+- test_mailbox should now work on cygwin versions 2006-08-10 and later.
+
- Bug #1535182: really test the xreadlines() method of bz2 objects.
- test_threading now skips testing alternate thread stack sizes on