summaryrefslogtreecommitdiff
path: root/Lib/test
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2010-10-29 23:41:37 +0000
committerAntoine Pitrou <solipsis@pitrou.net>2010-10-29 23:41:37 +0000
commit01232bd3a2b589bf8d9ced9a6722940a45be9196 (patch)
tree608c96ced22a0d3631d99930ee6b4ee11d6ddfd1 /Lib/test
parent8a10b30651385e6c48e11f2f6a0acdb8136d4a1a (diff)
downloadcpython-01232bd3a2b589bf8d9ced9a6722940a45be9196.tar.gz
Clean up socket closing in test_ssl and test.ssl_servers
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/ssl_servers.py5
-rw-r--r--Lib/test/test_ssl.py54
2 files changed, 35 insertions, 24 deletions
diff --git a/Lib/test/ssl_servers.py b/Lib/test/ssl_servers.py
index cdf9de1014..14d6aeb628 100644
--- a/Lib/test/ssl_servers.py
+++ b/Lib/test/ssl_servers.py
@@ -133,7 +133,10 @@ class HTTPSServerThread(threading.Thread):
def run(self):
if self.flag:
self.flag.set()
- self.server.serve_forever(0.05)
+ try:
+ self.server.serve_forever(0.05)
+ finally:
+ self.server.server_close()
def stop(self):
self.server.shutdown()
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index f740f2d5dd..bb9cebf76b 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -198,13 +198,16 @@ class BasicSocketTests(unittest.TestCase):
self.assertRaisesRegexp(ValueError, "can't connect in server-side mode",
s.connect, (HOST, 8080))
with self.assertRaises(IOError) as cm:
- ssl.wrap_socket(socket.socket(), certfile=WRONGCERT)
+ with socket.socket() as sock:
+ ssl.wrap_socket(sock, certfile=WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT)
with self.assertRaises(IOError) as cm:
- ssl.wrap_socket(socket.socket(), certfile=CERTFILE, keyfile=WRONGCERT)
+ with socket.socket() as sock:
+ ssl.wrap_socket(sock, certfile=CERTFILE, keyfile=WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT)
with self.assertRaises(IOError) as cm:
- ssl.wrap_socket(socket.socket(), certfile=WRONGCERT, keyfile=WRONGCERT)
+ with socket.socket() as sock:
+ ssl.wrap_socket(sock, certfile=WRONGCERT, keyfile=WRONGCERT)
self.assertEqual(cm.exception.errno, errno.ENOENT)
def test_match_hostname(self):
@@ -281,9 +284,9 @@ class BasicSocketTests(unittest.TestCase):
def test_server_side(self):
# server_hostname doesn't work for server sockets
ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
- sock = socket.socket()
- self.assertRaises(ValueError, ctx.wrap_socket, sock, True,
- server_hostname="some.hostname")
+ with socket.socket() as sock:
+ self.assertRaises(ValueError, ctx.wrap_socket, sock, True,
+ server_hostname="some.hostname")
class ContextTests(unittest.TestCase):
@@ -579,9 +582,10 @@ class NetworkedTests(unittest.TestCase):
s.connect(remote)
# Error checking can happen at instantiation or when connecting
with self.assertRaisesRegexp(ssl.SSLError, "No cipher can be selected"):
- s = ssl.wrap_socket(socket.socket(socket.AF_INET),
- cert_reqs=ssl.CERT_NONE, ciphers="^$:,;?*'dorothyx")
- s.connect(remote)
+ with socket.socket(socket.AF_INET) as sock:
+ s = ssl.wrap_socket(sock,
+ cert_reqs=ssl.CERT_NONE, ciphers="^$:,;?*'dorothyx")
+ s.connect(remote)
def test_algorithms(self):
# Issue #8484: all algorithms should be available when verifying a
@@ -903,10 +907,11 @@ else:
# try to connect
try:
try:
- s = ssl.wrap_socket(socket.socket(),
- certfile=certfile,
- ssl_version=ssl.PROTOCOL_TLSv1)
- s.connect((HOST, server.port))
+ with socket.socket() as sock:
+ s = ssl.wrap_socket(sock,
+ certfile=certfile,
+ ssl_version=ssl.PROTOCOL_TLSv1)
+ s.connect((HOST, server.port))
except ssl.SSLError as x:
if support.verbose:
sys.stdout.write("\nSSLError is %s\n" % x.args[1])
@@ -1093,21 +1098,22 @@ else:
def listener():
s.listen(5)
listener_ready.set()
- s.accept()
+ newsock, addr = s.accept()
+ newsock.close()
s.close()
listener_gone.set()
def connector():
listener_ready.wait()
- c = socket.socket()
- c.connect((HOST, port))
- listener_gone.wait()
- try:
- ssl_sock = ssl.wrap_socket(c)
- except IOError:
- pass
- else:
- self.fail('connecting to closed SSL socket should have failed')
+ with socket.socket() as c:
+ c.connect((HOST, port))
+ listener_gone.wait()
+ try:
+ ssl_sock = ssl.wrap_socket(c)
+ except IOError:
+ pass
+ else:
+ self.fail('connecting to closed SSL socket should have failed')
t = threading.Thread(target=listener)
t.start()
@@ -1469,6 +1475,8 @@ else:
# Let the socket hang around rather than having
# it closed by garbage collection.
conns.append(server.accept()[0])
+ for sock in conns:
+ sock.close()
t = threading.Thread(target=serve)
t.start()