Skip new imaplib SSL tests if ssl is not available.

This commit is contained in:
R. David Murray 2009-12-09 16:41:39 +00:00
parent 93321f333c
commit d4e31a4316

View file

@ -10,13 +10,17 @@ import os.path
import select import select
import socket import socket
import SocketServer import SocketServer
import ssl
import sys import sys
import time import time
from test_support import reap_threads, verbose from test_support import reap_threads, verbose
import unittest import unittest
try:
import ssl
except ImportError:
ssl = None
CERTFILE = None CERTFILE = None
@ -33,14 +37,25 @@ class TestImaplib(unittest.TestCase):
imaplib.Time2Internaldate(t) imaplib.Time2Internaldate(t)
class SecureTCPServer(SocketServer.TCPServer): if ssl:
def get_request(self): class SecureTCPServer(SocketServer.TCPServer):
newsocket, fromaddr = self.socket.accept()
connstream = ssl.wrap_socket(newsocket, def get_request(self):
server_side=True, newsocket, fromaddr = self.socket.accept()
certfile=CERTFILE) connstream = ssl.wrap_socket(newsocket,
return connstream, fromaddr server_side=True,
certfile=CERTFILE)
return connstream, fromaddr
IMAP4_SSL = imaplib.IMAP4_SSL
else:
class SecureTCPServer:
pass
IMAP4_SSL = None
class SimpleIMAPHandler(SocketServer.StreamRequestHandler): class SimpleIMAPHandler(SocketServer.StreamRequestHandler):
@ -159,10 +174,11 @@ class ThreadedNetworkedTests(BaseThreadedNetworkedTests):
imap_class = imaplib.IMAP4 imap_class = imaplib.IMAP4
@unittest.skipUnless(ssl, "SSL not available")
class ThreadedNetworkedTestsSSL(BaseThreadedNetworkedTests): class ThreadedNetworkedTestsSSL(BaseThreadedNetworkedTests):
server_class = SecureTCPServer server_class = SecureTCPServer
imap_class = imaplib.IMAP4_SSL imap_class = IMAP4_SSL
def test_main(): def test_main():
@ -170,11 +186,12 @@ def test_main():
tests = [TestImaplib] tests = [TestImaplib]
if support.is_resource_enabled('network'): if support.is_resource_enabled('network'):
global CERTFILE if ssl:
CERTFILE = os.path.join(os.path.dirname(__file__) or os.curdir, global CERTFILE
"keycert.pem") CERTFILE = os.path.join(os.path.dirname(__file__) or os.curdir,
if not os.path.exists(CERTFILE): "keycert.pem")
raise support.TestFailed("Can't read certificate files!") if not os.path.exists(CERTFILE):
raise support.TestFailed("Can't read certificate files!")
tests.extend([ThreadedNetworkedTests, ThreadedNetworkedTestsSSL]) tests.extend([ThreadedNetworkedTests, ThreadedNetworkedTestsSSL])
support.run_unittest(*tests) support.run_unittest(*tests)