Changeset: 95e614512d16 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/95e614512d16
Modified Files:
        sql/test/BugTracker-2025/Tests/All
        sql/test/Tests/hot_snapshot_huge_file.py
        sql/test/copy/Tests/compressed_on_client.py
        sql/test/mapi/Tests/utf8test.SQL.py
Branch: default
Log Message:

Merge with Dec2025 branch.


diffs (159 lines):

diff --git a/sql/test/BugTracker-2025/Tests/All 
b/sql/test/BugTracker-2025/Tests/All
--- a/sql/test/BugTracker-2025/Tests/All
+++ b/sql/test/BugTracker-2025/Tests/All
@@ -91,7 +91,7 @@ KNOWNFAIL?7750-dependency-not-removed-bu
 7753-like-in-projection
 !HAVE_HGE?7754-overflow-in-conversion-to-decimal
 7756-anti-join-null
-7759-replace-wrong-error
+HAVE_LIBPCRE?7759-replace-wrong-error
 7761-semijoin-string-comparison
 7763-exits-with-null
 7760-groupby_posarg_CP
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
@@ -1,7 +1,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/sql/test/mapi/Tests/utf8test.SQL.py 
b/sql/test/mapi/Tests/utf8test.SQL.py
--- a/sql/test/mapi/Tests/utf8test.SQL.py
+++ b/sql/test/mapi/Tests/utf8test.SQL.py
@@ -46,22 +46,39 @@ expectsql = f'''\
 +----------------------------------+
 2 tuples
 '''
+expectraw2 = f'''% sys.utf8test # table_name
+% s # name
+% varchar # type
+% 32 # length
+% 50 0 # typesizes
+[ "{text1}"\t]
+[ "funny characters: ??????"\t]
+'''
+expectsql2 = f'''+----------------------------------+
+| s                                |
++==================================+
+| {text1} |
+| funny characters: ??????         |
++----------------------------------+
+2 tuples
+'''
+
 expecterr = 'invalid multibyte sequence\n'
 
 out, err = client(['-s', 'create table utf8test (s varchar(50))'])
 out, err = client(['-s', f"insert into utf8test values ('{text1}')"])
 out, err = client(['-s', f"insert into utf8test values (u&'{text2s}')"],
                   encoding=locale.getpreferredencoding())
-out, err = client(['-s', 'select * from utf8test'], encoding='utf-8',
-                  format='raw')
+out, err = client(['-s', 'select * from utf8test'],
+                  encoding='utf-8', format='raw')
 if out != expectraw:
     sys.stdout.write('utf-8, raw:\n')
     sys.stdout.write('received:\n')
     sys.stdout.write(out)
     sys.stdout.write('expected:\n')
     sys.stdout.write(expectraw)
-out, err = client(['-s', 'select * from utf8test'], encoding='utf-8',
-                  format='sql')
+out, err = client(['-s', 'select * from utf8test'],
+                  encoding='utf-8', format='sql')
 if out != expectsql:
     sys.stdout.write('utf-8, sql:\n')
     sys.stdout.write('received:\n')
@@ -86,7 +103,7 @@ if out != expectsql:
     sys.stdout.write(expectsql)
 out, err = client(['-s', 'select * from utf8test'],
                   encoding='us-ascii', format='raw')
-if err != expecterr:
+if err != expecterr and out != expectraw2:
     sys.stdout.write('us-ascii, raw:\n')
     sys.stdout.write('received:\n')
     sys.stdout.write(err)
@@ -94,7 +111,7 @@ if err != expecterr:
     sys.stdout.write(expecterr)
 out, err = client(['-s', 'select * from utf8test'],
                   encoding='us-ascii', format='sql')
-if err != expecterr:
+if err != expecterr and out != expectsql2:
     sys.stdout.write('us-ascii, sql:\n')
     sys.stdout.write('received:\n')
     sys.stdout.write(err)
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