Changeset: 1d38ac933163 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1d38ac933163
Modified Files:
        sql/test/Tests/hot_snapshot_huge_file.py
        sql/test/Tests/selective_snapshot.py
        sql/test/concurrent/Tests/7881-concurrent-ddl.SQL.py
        sql/test/copy/Tests/compressed_on_client.py
        testing/tpymonetdb.py
Branch: Dec2025
Log Message:

Make timeout handing in tpymonetdb more accurate and use it in more places.


diffs (82 lines):

diff --git a/sql/test/Tests/hot_snapshot_huge_file.py 
b/sql/test/Tests/hot_snapshot_huge_file.py
--- a/sql/test/Tests/hot_snapshot_huge_file.py
+++ b/sql/test/Tests/hot_snapshot_huge_file.py
@@ -15,7 +15,7 @@ import sys
 import tempfile
 
 import lz4.frame
-import pymonetdb
+from MonetDBtesting import tpymonetdb as pymonetdb
 
 log_level = logging.DEBUG
 log_format = 
'%(levelname)s:t=%(relativeCreated)d:func=%(funcName)s:line=%(lineno)d:%(message)s'
diff --git a/sql/test/Tests/selective_snapshot.py 
b/sql/test/Tests/selective_snapshot.py
--- a/sql/test/Tests/selective_snapshot.py
+++ b/sql/test/Tests/selective_snapshot.py
@@ -1,6 +1,6 @@
 import tarfile
 from MonetDBtesting import process
-import pymonetdb
+from MonetDBtesting import tpymonetdb as pymonetdb
 import sys
 import shutil
 import os
diff --git a/sql/test/concurrent/Tests/7881-concurrent-ddl.SQL.py 
b/sql/test/concurrent/Tests/7881-concurrent-ddl.SQL.py
--- a/sql/test/concurrent/Tests/7881-concurrent-ddl.SQL.py
+++ b/sql/test/concurrent/Tests/7881-concurrent-ddl.SQL.py
@@ -1,4 +1,4 @@
-import pymonetdb
+from MonetDBtesting import tpymonetdb as pymonetdb
 import os
 
 h = os.getenv('MAPIHOST')
diff --git a/sql/test/copy/Tests/compressed_on_client.py 
b/sql/test/copy/Tests/compressed_on_client.py
--- a/sql/test/copy/Tests/compressed_on_client.py
+++ b/sql/test/copy/Tests/compressed_on_client.py
@@ -4,7 +4,7 @@
 import os
 import struct
 import sys
-import pymonetdb
+from MonetDBtesting import tpymonetdb as pymonetdb
 
 TSTDB = database = os.getenv("TSTDB", 'tmpdb')
 MAPIPORT = int(os.getenv("MAPIPORT", '50000'))
diff --git a/testing/tpymonetdb.py b/testing/tpymonetdb.py
--- a/testing/tpymonetdb.py
+++ b/testing/tpymonetdb.py
@@ -7,15 +7,30 @@
 # For copyright information, see the file debian/copyright.
 
 from pymonetdb import *
+from pymonetdb import __version__
+from pymonetdb import __all__
+
+import os
+import time
+_timeout = int(os.getenv('TIMEOUT', '0'))
+_starttime = time.time() if _timeout > 0 else 0
+_endtime = _starttime + _timeout
+
 connect_orig = connect
+
+
 def connect(*args, **kwargs):
-    import os
-    timeout = int(os.environ.get('TIMEOUT', '0'))
-    if timeout > 0:
+    if _timeout > 0:
+        curtime = time.time()
+        if curtime >= _endtime:
+            raise TimeoutError('Timed out')
         kwargs = kwargs.copy()
         kwargs['connect_timeout'] = 20
+        timeout = _endtime - curtime  # time remaining
+    else:
+        timeout = 0
     h = connect_orig(*args, **kwargs)
-    if timeout > 0:
+    if _timeout > 0:
         h.settimeout(timeout)
         with h.cursor() as c:
             c.execute(f'call sys.setsessiontimeout({timeout})')
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to