Changeset: ad13c411bec6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ad13c411bec6
Modified Files:
testing/sqltest.py
Branch: default
Log Message:
adding line number in sqltest in error output
diffs (88 lines):
diff --git a/testing/sqltest.py b/testing/sqltest.py
--- a/testing/sqltest.py
+++ b/testing/sqltest.py
@@ -10,6 +10,7 @@ import pymonetdb
import difflib
from abc import ABCMeta, abstractmethod
import MonetDBtesting.process as process
+import inspect
TSTDB=os.getenv("TSTDB")
MAPIPORT=os.getenv("MAPIPORT")
@@ -155,7 +156,7 @@ class RunnableTestResult(metaclass=ABCMe
did_run = False
@abstractmethod
- def run(self, query:str, *args, stdin=None):
+ def run(self, query:str, *args, stdin=None, lineno=None):
"""Run query with specific client"""
pass
@@ -175,12 +176,14 @@ class TestCaseResult(object):
self.rowcount = -1
self.description = None
self.id = kwargs.get('id')
+ self.lineno = None
def fail(self, msg, data=None):
""" logs errors to test case err file"""
err_file = self.test_case.err_file
if len(self.assertion_errors) == 0:
- print('', file=err_file)
+ lineno = self.lineno or 'N/A'
+ print(f'line {lineno}', file=err_file)
if self.query:
print(self.query, file=err_file)
elif self.id:
@@ -308,9 +311,10 @@ class MclientTestResult(TestCaseResult,
return count
- def run(self, query:str, *args, stdin=None):
+ def run(self, query:str, *args, stdin=None, lineno=None):
# ensure runs only once
if self.did_run is False:
+ self.lineno = lineno
conn_ctx = self.test_case.conn_ctx
kwargs = dict(
host = conn_ctx.hostname,
@@ -416,9 +420,10 @@ class PyMonetDBTestResult(TestCaseResult
err_msg = tmp[0].strip()
return err_code, err_msg
- def run(self, query:str, *args, stdin=None):
+ def run(self, query:str, *args, stdin=None, lineno=None):
# ensure runs only once
if self.did_run is False:
+ self.lineno = lineno
if query:
self.query = query
try:
@@ -447,8 +452,9 @@ class MonetDBeTestResult(TestCaseResult,
def _parse_error(self, err: str):
pass
- def run(self, query:str, *args, stdin=None):
+ def run(self, query:str, *args, stdin=None, lineno=None):
if self.did_run is False:
+ self.lineno = lineno
if query:
self.query = query
try:
@@ -552,13 +558,15 @@ class SQLTestCase():
return self._conn_ctx or self.default_conn_ctx()
def execute(self, query:str, *args, client='pymonetdb', stdin=None,
result_id=None):
+ frame = inspect.currentframe().f_back
+ lineno = frame.f_lineno
if client == 'mclient':
res = MclientTestResult(self, id=result_id)
elif self.in_memory:
res = MonetDBeTestResult(self, id=result_id)
else:
res = PyMonetDBTestResult(self, id=result_id)
- res.run(query, *args, stdin=stdin)
+ res.run(query, *args, stdin=stdin, lineno=lineno)
self.test_results.append(res)
return res
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list