3131import  unittest 
3232from  test  import  support 
3333from  test .support  import  (
34-     is_apple , os_helper , requires_subprocess , threading_helper 
34+     is_apple , os_helper , requires_subprocess , threading_helper ,  import_helper 
3535)
3636
3737try :
@@ -68,6 +68,15 @@ def create_https_server(
6868    )
6969
7070
71+ class  TestSSLDisabled (unittest .TestCase ):
72+     def  test_https_server_raises_runtime_error (self ):
73+         with  import_helper .isolated_modules ():
74+             sys .modules ['ssl' ] =  None 
75+             certfile  =  certdata_file ("keycert.pem" )
76+             with  self .assertRaises (RuntimeError ):
77+                 create_https_server (certfile )
78+ 
79+ 
7180class  TestServerThread (threading .Thread ):
7281    def  __init__ (self , test_object , request_handler , tls = None ):
7382        threading .Thread .__init__ (self )
@@ -77,12 +86,10 @@ def __init__(self, test_object, request_handler, tls=None):
7786
7887    def  run (self ):
7988        if  self .tls :
80-             self .server  =  HTTPSServer (
81-                 ('localhost' , 0 ),
82-                 self .request_handler ,
83-                 certfile = self .tls [0 ],
84-                 keyfile = self .tls [1 ],
85-                 password = self .tls [2 ],
89+             certfile , keyfile , password  =  self .tls 
90+             self .server  =  create_https_server (
91+                 certfile , keyfile , password ,
92+                 request_handler = self .request_handler ,
8693            )
8794        else :
8895            self .server  =  HTTPServer (('localhost' , 0 ), self .request_handler )
@@ -393,7 +400,9 @@ def test_valid_certdata(self):
393400            (self .ONLYCERT , self .ONLYKEY_PROTECTED , self .KEY_PASSWORD ),
394401        ]
395402        for  certfile , keyfile , password  in  valid_certdata :
396-             with  self .subTest (certfile = certfile , keyfile = keyfile ):
403+             with  self .subTest (certfile = certfile ,
404+                               keyfile = keyfile ,
405+                               password = password ):
397406                server  =  create_https_server (certfile , keyfile , password )
398407                self .assertIsInstance (server , HTTPSServer )
399408                server .server_close ()
@@ -408,7 +417,9 @@ def test_invalid_certdata(self):
408417            (self .CERTFILE_PROTECTED , None , self .BADPASSWORD ),
409418        ]
410419        for  certfile , keyfile , password  in  invalid_certdata :
411-             with  self .subTest (certfile = certfile , keyfile = keyfile ):
420+             with  self .subTest (certfile = certfile ,
421+                               keyfile = keyfile ,
422+                               password = password ):
412423                with  self .assertRaises (ssl .SSLError ):
413424                    create_https_server (certfile , keyfile , password )
414425
0 commit comments