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
1 changed files with 31 additions and 14 deletions

View File

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