diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2010-08-14 16:24:38 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-08-14 16:24:38 (GMT) |
commit | 35bebe12e0767320ba18f355670d65e0ec47cb37 (patch) | |
tree | 576288d5aa0dbef40c86cfe929d168ce8dce4f83 | |
parent | cc5943d36b41ee7dbc418b0c3ab6af62004ccdca (diff) | |
download | cpython-35bebe12e0767320ba18f355670d65e0ec47cb37.zip cpython-35bebe12e0767320ba18f355670d65e0ec47cb37.tar.gz cpython-35bebe12e0767320ba18f355670d65e0ec47cb37.tar.bz2 |
Add a reasonable timeout to network SSL tests, so as to avoid buildbot timeouts
when the remote server doesn't answer.
-rw-r--r-- | Lib/test/test_ssl.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 091234c..175091c 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -295,10 +295,12 @@ class ContextTests(unittest.TestCase): class NetworkedTests(unittest.TestCase): + timeout = 30 def test_connect(self): s = ssl.wrap_socket(socket.socket(socket.AF_INET), cert_reqs=ssl.CERT_NONE) + s.settimeout(self.timeout) try: s.connect(("svn.python.org", 443)) self.assertEqual({}, s.getpeercert()) @@ -308,6 +310,7 @@ class NetworkedTests(unittest.TestCase): # this should fail because we have no verification certs s = ssl.wrap_socket(socket.socket(socket.AF_INET), cert_reqs=ssl.CERT_REQUIRED) + s.settimeout(self.timeout) self.assertRaisesRegexp(ssl.SSLError, "certificate verify failed", s.connect, ("svn.python.org", 443)) s.close() @@ -316,6 +319,7 @@ class NetworkedTests(unittest.TestCase): s = ssl.wrap_socket(socket.socket(socket.AF_INET), cert_reqs=ssl.CERT_REQUIRED, ca_certs=SVN_PYTHON_ORG_ROOT_CERT) + s.settimeout(self.timeout) try: s.connect(("svn.python.org", 443)) self.assertTrue(s.getpeercert()) @@ -326,6 +330,7 @@ class NetworkedTests(unittest.TestCase): # Same as test_connect, but with a separately created context ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23) s = ctx.wrap_socket(socket.socket(socket.AF_INET)) + s.settimeout(self.timeout) s.connect(("svn.python.org", 443)) try: self.assertEqual({}, s.getpeercert()) @@ -334,12 +339,14 @@ class NetworkedTests(unittest.TestCase): # This should fail because we have no verification certs ctx.verify_mode = ssl.CERT_REQUIRED s = ctx.wrap_socket(socket.socket(socket.AF_INET)) + s.settimeout(self.timeout) self.assertRaisesRegexp(ssl.SSLError, "certificate verify failed", s.connect, ("svn.python.org", 443)) s.close() # This should succeed because we specify the root cert ctx.load_verify_locations(SVN_PYTHON_ORG_ROOT_CERT) s = ctx.wrap_socket(socket.socket(socket.AF_INET)) + s.settimeout(self.timeout) s.connect(("svn.python.org", 443)) try: cert = s.getpeercert() @@ -357,6 +364,7 @@ class NetworkedTests(unittest.TestCase): ctx.verify_mode = ssl.CERT_REQUIRED ctx.load_verify_locations(capath=CAPATH) s = ctx.wrap_socket(socket.socket(socket.AF_INET)) + s.settimeout(self.timeout) s.connect(("svn.python.org", 443)) try: cert = s.getpeercert() @@ -368,6 +376,7 @@ class NetworkedTests(unittest.TestCase): ctx.verify_mode = ssl.CERT_REQUIRED ctx.load_verify_locations(capath=BYTES_CAPATH) s = ctx.wrap_socket(socket.socket(socket.AF_INET)) + s.settimeout(self.timeout) s.connect(("svn.python.org", 443)) try: cert = s.getpeercert() @@ -381,6 +390,7 @@ class NetworkedTests(unittest.TestCase): # delay closing the underlying "real socket" (here tested with its # file descriptor, hence skipping the test under Windows). ss = ssl.wrap_socket(socket.socket(socket.AF_INET)) + ss.settimeout(self.timeout) ss.connect(("svn.python.org", 443)) fd = ss.fileno() f = ss.makefile() @@ -396,6 +406,7 @@ class NetworkedTests(unittest.TestCase): def test_non_blocking_handshake(self): s = socket.socket(socket.AF_INET) + s.settimeout(self.timeout) s.connect(("svn.python.org", 443)) s.setblocking(False) s = ssl.wrap_socket(s, @@ -452,6 +463,7 @@ class NetworkedTests(unittest.TestCase): s = ssl.wrap_socket(socket.socket(socket.AF_INET), cert_reqs=ssl.CERT_REQUIRED, ca_certs=sha256_cert,) + s.settimeout(self.timeout) with support.transient_internet(): try: s.connect(remote) |