Changeset: 6d3098fd2db1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6d3098fd2db1
Modified Files:
        testing/Mtest.py.in
Branch: Aug2024
Log Message:

Run a dummy server if the cryptography module cannot be found


diffs (52 lines):

diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -35,6 +35,8 @@ import socket
 import struct
 import signal
 import fnmatch
+import http
+import http.server
 import glob
 import pymonetdb # check for pymonetdb early: it is essential for our work
 
@@ -3240,13 +3242,26 @@ def SetExecEnv(exe,port,verbose) :
         print(end='', flush=True)
 ### SetExecEnv(exe,port,procdebug) #
 
-def StartTlsTester(tsttrgdir):
+def DummyTlsTester():
+    class DummyHTTPRequestHandler(http.server.BaseHTTPRequestHandler):
+        def handle(self):
+            self.requestline = ''
+            self.request_version = ''
+            self.command = ''
+            self.send_error(http.HTTPStatus.INTERNAL_SERVER_ERROR, 
f"{sys.argv[0]} is not running TLSTestter because the 'cryptography' module is 
not present")
+    server = http.server.HTTPServer(('localhost', 0), DummyHTTPRequestHandler)
+    port = server.server_address[1]
+    server_thread = threading.Thread(target=server.serve_forever, daemon=True)
+    server_thread.start()
+    return port
+### DummyTlsTester(exe,port,procdebug) #
+
+def StartTlsTester():
     try:
         import cryptography
     except:
-        # continue without so we can at least run the other tests
-        print("cryptography not found!", file=sys.stderr)
-        return None
+        # Start a dummy server that only returns errors.
+        return DummyTlsTester()
     from MonetDBtesting import tlstester
     hostnames = ['localhost']
     certs = tlstester.Certs(hostnames)
@@ -3808,7 +3823,7 @@ def main(argv) :
 
     # start tlstester
     if not env.get('TST_TLSTESTERPORT'):
-        tlstester_port = StartTlsTester(os.path.join(TSTTRGBASE, TSTPREF))
+        tlstester_port = StartTlsTester()
         if tlstester_port:
             env['TST_TLSTESTERPORT'] = str(tlstester_port)
     if env.get('TST_TLSTESTERPORT'):
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to