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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list