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]