#!/usr/bin/env python import unittest from test import test_support import os import errno import socket import ssl class SSLClosingTest(unittest.TestCase): def test_ssl_wrap_socket(self): s = socket.create_connection(('gmail.com', 443)) fd = s.fileno() ss = ssl.wrap_socket(s) ss.close() try: # closing a fd twice should give EBADF error os.close(fd) except OSError, e: self.assertEqual(e.errno, errno.EBADF, 'underlying socket not closed') else: self.fail('underlying socket not closed') if __name__ == '__main__': test_support.requires("network") test_support.run_unittest(SSLClosingTest)