Title: Some test_ssl network tests fail if is not accessible.
Type: behavior Stage: patch review
Components: Tests Versions: Python 3.6, Python 3.5
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: berker.peksag, martin.panter, vlee
Priority: normal Keywords: easy, patch

Created on 2015-08-11 00:29 by vlee, last changed 2016-01-28 21:34 by martin.panter.

File name Uploaded Description Edit
issue24841.diff berker.peksag, 2015-09-22 04:31 review
Messages (6)
msg248382 - (view) Author: Vinson Lee (vlee) * Date: 2015-08-11 00:29
'make test' runs all the network tests.

Some of the tests in test_ssl fail instead of skip if is not accessible.

$ ./python -m test -v -u all test_ssl

ERROR: test_non_blocking_connect_ex (test.test_ssl.NetworkedTests)
Traceback (most recent call last):
  File "/home/vinson/workspace/cpython-master/Lib/test/", line 1404, in test_non_blocking_connect_ex
  File "Lib/", line 978, in do_handshake
  File "Lib/", line 776, in _check_connected
OSError: [Errno 107] Transport endpoint is not connected

FAIL: test_connect_ex (test.test_ssl.NetworkedTests)
Traceback (most recent call last):
  File "Lib/test/", line 1381, in test_connect_ex
    self.assertEqual(0, s.connect_ex(("", 443)))
AssertionError: 0 != 111

FAIL: test_timeout_connect_ex (test.test_ssl.NetworkedTests)
Traceback (most recent call last):
  File "Lib/test/", line 1428, in test_timeout_connect_ex
    self.assertIn(rc, (errno.EAGAIN, errno.EWOULDBLOCK))
AssertionError: 111 not found in (11, 11)

Ran 117 tests in 3.123s

FAILED (failures=2, errors=1, skipped=20)
test test_ssl failed
1 test failed:
msg251287 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2015-09-22 04:31
The attached patch should fix the test failures.
msg251990 - (view) Author: Vinson Lee (vlee) * Date: 2015-10-01 02:58
I tested the attached patch on latest cpython master and it works for me.

test_ciphers (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_connect (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_connect_cadata (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_connect_capath (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_connect_ex (test.test_ssl.NetworkedTests) ... skipped ' cannot be reached: Connection refused'
test_connect_with_context (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_context_setget (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_get_ca_certs_capath (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_get_server_certificate (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_makefile_close (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_non_blocking_connect_ex (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_non_blocking_handshake (test.test_ssl.NetworkedTests) ... skipped "Resource '' is not available"
test_timeout_connect_ex (test.test_ssl.NetworkedTests) ... skipped ' cannot be reached: Connection refused'
test_handshake (test.test_ssl.NetworkedBIOTests) ... skipped "Resource '' is not available"
test_read_write_data (test.test_ssl.NetworkedBIOTests) ... skipped "Resource '' is not available"

Tested-by: Vinson Lee <>
msg259014 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-01-27 11:17
The two changes to look okay to me, although they will need updating since the Issue 24841 changeover to

But I don’t think it is a good idea to add ENOTCONN to the list of errors ignored by all transient_internet() tests. In most cases, ENOTCONN suggests a programming error, not a network problem. I think a better solution would be to call connect_ex() again in test_non_blocking_connect_ex(), and retrieve the result (probably also ECONNREFUSED like the other failures, or 0 if successful).
msg259132 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2016-01-28 14:18
> although they will need updating since the Issue 24841 changeover to

I think you meant issue 25940, right? :)

Do you want me to wait for issue 25940?
msg259161 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-01-28 21:34
Yes sorry I did mean Issue 25940 (too many bug numbers!), but only the main change which has already been made (revision adf750b1252d etc). So you don’t have to wait for that.
Date User Action Args
2016-01-28 21:34:01martin.pantersetmessages: + msg259161
2016-01-28 14:18:45berker.peksagsetmessages: + msg259132
versions: - Python 3.4
2016-01-27 11:17:43martin.pantersetnosy: + martin.panter
messages: + msg259014
2015-10-01 02:58:37vleesetmessages: + msg251990
2015-09-22 04:31:37berker.peksagsetfiles: + issue24841.diff
messages: + msg251287

keywords: + patch
type: behavior
stage: needs patch -> patch review
2015-08-12 21:22:43berker.peksagsetkeywords: + easy
nosy: + berker.peksag
stage: needs patch

versions: - Python 3.3
2015-08-11 00:48:47vleesetversions: + Python 3.3, Python 3.4, Python 3.5
2015-08-11 00:29:01vleecreate