1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#!/usr/bin/env python
"""Unit tests for M2Crypto.SSL.
Win32 version - requires Mark Hammond's Win32 extensions and openssl.exe
on your PATH.
Copyright (c) 2000-2001 Ng Pheng Siong. All rights reserved."""
import os
import os.path
import time
try:
import win32process
except ImportError:
win32process = None
from tests import test_ssl, unittest
if win32process:
from M2Crypto import Rand
def find_openssl():
plist = os.environ["PATH"].split(";")
for p in plist:
try:
path_dir = os.listdir(p)
if "openssl.exe" in path_dir:
return os.path.join(p, "openssl.exe")
except OSError:
pass
return None
srv_host = "localhost"
srv_port = 64000
class SSLWinClientTestCase(test_ssl.BaseSSLClientTestCase):
startupinfo = win32process.STARTUPINFO()
openssl = find_openssl()
def start_server(self, args):
# openssl must be started in the tests directory for it
# to find the .pem files
os.chdir("tests")
try:
hproc, _, _, _ = win32process.CreateProcess(
self.openssl,
" ".join(args),
None,
None,
0,
win32process.DETACHED_PROCESS,
None,
None,
self.startupinfo,
)
finally:
os.chdir("..")
time.sleep(0.3)
return hproc
def stop_server(self, hproc):
win32process.TerminateProcess(hproc, 0)
def suite():
return unittest.TestLoader().loadTestsFromTestCase(SSLWinClientTestCase)
def zap_servers():
pass
if __name__ == "__main__":
try:
if find_openssl() is not None:
Rand.load_file("randpool.dat", -1)
unittest.TextTestRunner().run(suite())
Rand.save_file("randpool.dat")
finally:
zap_servers()
|