====================================================================== ERROR: test_non_blocking_connect_ex (test.test_ssl.NetworkedTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_ssl.py", line 518, in test_non_blocking_connect_ex s.do_handshake() File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\ssl.py", line 442, in do_handshake self._sslobj.do_handshake() socket.error: [Errno 10057] A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied ====================================================================== FAIL: test_connect_ex (test.test_ssl.NetworkedTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_ssl.py", line 495, in test_connect_ex self.assertEqual(0, s.connect_ex(("svn.python.org", 443))) AssertionError: 0 != 10061 http://www.python.org/dev/buildbot/all/builders/x86%20XP-4%203.x/builds/4918/steps/test/logs/stdio WSAECONNREFUSED (10061): "Connection refused." WSAENOTCONN (10057): "Socket is not connected." It is obvious that transient_internet() should catch WSAECONNREFUSED, but for WSAENOTCONN, I don't understand why it happens on a SSL handshake. Attached patch catchs both errors. We may start with only WSAECONNREFUSED, and maybe add a specific code for test_ssl?
You don't need to add WSAECONNREFUSED, it's already there as ECONNREFUSED: >>> errno.ECONNREFUSED 10061 >>> errno.WSAECONNREFUSED 10061 As for (WSA)ENOTCONN, I don't want to add it before knowing what happens. It may signal a programming error.
> You don't need to add WSAECONNREFUSED, > it's already there as ECONNREFUSED Oh ok. Here is a patch for test_ssl.test_connect_ex() ignoring ECONNREFUSED error.
> Oh ok. Here is a patch for test_ssl.test_connect_ex() ignoring ECONNREFUSED error. IMO you also want to test for the other errnos in transient_internet. Also, it should skip the test if the connection is refused.