Changeset: a4dbf2899902 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a4dbf2899902 Modified Files: testing/sqltest.py Branch: mtest Log Message:
add err code opt to assertFailed sqltest diffs (86 lines): diff --git a/testing/sqltest.py b/testing/sqltest.py --- a/testing/sqltest.py +++ b/testing/sqltest.py @@ -7,6 +7,7 @@ import os import sys import unittest import pymonetdb +import MonetDBtesting.utils as utils TSTDB=os.getenv("TSTDB") MAPIPORT=int(os.getenv("MAPIPORT")) @@ -91,17 +92,17 @@ class PyMonetDBConnectionContext(object) class SQLTestResult(object): """Holder of sql execution information. Managed by SQLTestCase.""" - query = None - assertion_errors = [] # holds assertion errors - query_error = None - data = [] - rows = [] - rowcount = -1 - description = None test_case = None def __init__(self, test_case): self.test_case = test_case + self.query = None + self.assertion_errors = [] # holds assertion errors + self.query_error = None + self.data = [] + self.rows = [] + self.rowcount = -1 + self.description = None def run(self, query:str): # ensure runs only once @@ -140,16 +141,23 @@ class SQLTestResult(object): print(sep, col, sep='', end='', file=err_file) sep = '|' print('', file=err_file) + print('', file=err_file) - def assertFailed(self): + def assertFailed(self, err_code=None): if self.query_error is None: - msg = "was expected to fail but didn't\n{}!".format(str(self.query_error)) + msg = "expected to fail but didn't\n{}".format(str(self.query_error)) self.fail(msg) + else: + if err_code: + err_code_received, err_msg_received = utils.parse_mapi_err_msg(self.query_error.args[0]) + if err_code_received != err_code: + msg = "expected to fail with error code {} but failed with error code {}".format(err_code, err_code_received) + self.fail(msg) return self def assertSucceeded(self): if self.query_error is not None: - msg = "was expected to succeed but didn't\n{}!".format(str(self.query_error)) + msg = "expected to succeed but didn't\n{}".format(str(self.query_error)) self.fail(msg) return self @@ -172,11 +180,11 @@ class SQLTestResult(object): pass if type(val) is type(received): if val != received: - msg = 'expected "{}", received "{}" in row={}, col={}!'.format(val, received, row, col) + msg = 'expected "{}", received "{}" in row={}, col={}'.format(val, received, row, col) self.fail(msg, data=self.data) else: # handle type mismatch - msg = 'expected type {} and value "{}", received type {} and value "{}" in row={}, col={}!'.format(type(val), str(val), type(received), str(received), row, col) + msg = 'expected type {} and value "{}", received type {} and value "{}" in row={}, col={}'.format(type(val), str(val), type(received), str(received), row, col) self.fail(msg, data=self.data) return self @@ -194,7 +202,7 @@ class SQLTestResult(object): index = i break if not sequence_match(data, self.data, index): - msg = '{}\nwas expected to match query result starting at index={}, but it didn\'t!'.format(piped_representation(data), index) + msg = '{}\nexpected to match query result starting at index={}, but it didn\'t'.format(piped_representation(data), index) self.fail(msg, data=self.data) return self _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list