Changeset: 4fab8ab054bd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4fab8ab054bd
Modified Files:
        testing/Mtest.py.in
Branch: Aug2018
Log Message:

Get embedded Python testing working on Windows.


diffs (60 lines):

diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -32,6 +32,14 @@ import struct
 import signal
 import fnmatch
 import glob
+try:
+    import winreg               # Python 3 on Windows
+except ImportError:
+    try:
+        import _winreg as winreg # Python 2 on Windows
+    except ImportError:
+        winreg = None           # not on Windows
+
 
 procdebug = False
 verbose = False
@@ -2985,11 +2993,32 @@ def DoIt(env, SERVER, CALL, TST, EXT, PR
             if (not all_tests or (COND != None and "HAVE_LIBR" in COND)) and 
CONDITIONALS['HAVE_LIBR'] and CONDITIONALS['NOT_WIN32']:
                 Srvr.extend(['--set', 'embedded_r=yes'])
 
+            savepath = None
             if (COND != None and "HAVE_LIBPY3" in COND) and 
CONDITIONALS['HAVE_LIBPY3']:
                 # enable Python 3 integration in server
+                if winreg is not None:
+                    try:
+                        with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, 
r'SOFTWARE\Python\PythonCore\3.7\InstallPath') as key:
+                            instpath = winreg.QueryValue(key, None)
+                            os.environ['PYTHONHOME'] = instpath
+                            os.environ['PYTHONPATH'] = instpath + 'Lib'
+                            savepath = os.environ['PATH']
+                            os.environ['PATH'] = instpath.rstrip('\\') + 
os.pathsep + savepath
+                    except WindowsError:
+                        pass
                 Srvr.extend(['--set', 'embedded_py=3'])
             elif (not all_tests or (COND != None and "HAVE_LIBPY" in COND)) 
and CONDITIONALS['HAVE_LIBPY']:
                 # enable Python integration in server
+                if winreg is not None:
+                    try:
+                        with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, 
r'SOFTWARE\Python\PythonCore\2.7\InstallPath') as key:
+                            instpath = winreg.QueryValue(key, None)
+                            os.environ['PYTHONHOME'] = instpath
+                            os.environ['PYTHONPATH'] = instpath + 'Lib'
+                            savepath = os.environ['PATH']
+                            os.environ['PATH'] = instpath.rstrip('\\') + 
os.pathsep + savepath
+                    except WindowsError:
+                        pass
                 Srvr.extend(['--set', 'embedded_py=true'])
 
             # enable C integration in server
@@ -2997,6 +3026,8 @@ def DoIt(env, SERVER, CALL, TST, EXT, PR
 
 
             pSrvr, pSrvrTimer = LaunchIt(Srvr, 
'\nio.printf("\\nReady.\\n");\n', SrvrOut, SrvrErr, TIMEOUT)
+            if savepath is not None:
+                os.environ['PATH'] = savepath
             ln="dummy"
             while 0 < len(ln) and not ln.startswith('Ready.'):
                 ln=pSrvr.stdout.readline()
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to