test: modify test of last_cache_scan.py
This commit is contained in:
parent
0dbbdd1d83
commit
f564e3f7bf
|
@ -78,6 +78,26 @@ class TDSql:
|
||||||
self.cursor.execute(s)
|
self.cursor.execute(s)
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
|
||||||
|
def execute(self, sql, queryTimes=30, show=False):
|
||||||
|
self.sql = sql
|
||||||
|
if show:
|
||||||
|
tdLog.info(sql)
|
||||||
|
i=1
|
||||||
|
while i <= queryTimes:
|
||||||
|
try:
|
||||||
|
self.affectedRows = self.cursor.execute(sql)
|
||||||
|
return self.affectedRows
|
||||||
|
except Exception as e:
|
||||||
|
tdLog.notice("Try to execute sql again, query times: %d "%i)
|
||||||
|
if i == queryTimes:
|
||||||
|
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
||||||
|
args = (caller.filename, caller.lineno, sql, repr(e))
|
||||||
|
tdLog.notice("%s(%d) failed: sql:%s, %s" % args)
|
||||||
|
raise Exception(repr(e))
|
||||||
|
i+=1
|
||||||
|
time.sleep(1)
|
||||||
|
pass
|
||||||
|
|
||||||
def error(self, sql, expectedErrno = None, expectErrInfo = None, fullMatched = True):
|
def error(self, sql, expectedErrno = None, expectErrInfo = None, fullMatched = True):
|
||||||
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
||||||
expectErrNotOccured = True
|
expectErrNotOccured = True
|
||||||
|
@ -158,6 +178,62 @@ class TDSql:
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def query_success_failed(self, sql, row_tag=None, queryTimes=10, count_expected_res=None, expectErrInfo = None, fullMatched = True):
|
||||||
|
self.sql = sql
|
||||||
|
i=1
|
||||||
|
while i <= queryTimes:
|
||||||
|
try:
|
||||||
|
self.cursor.execute(sql)
|
||||||
|
self.queryResult = self.cursor.fetchall()
|
||||||
|
self.queryRows = len(self.queryResult)
|
||||||
|
self.queryCols = len(self.cursor.description)
|
||||||
|
|
||||||
|
if count_expected_res is not None:
|
||||||
|
counter = 0
|
||||||
|
while count_expected_res != self.queryResult[0][0]:
|
||||||
|
self.cursor.execute(sql)
|
||||||
|
self.queryResult = self.cursor.fetchall()
|
||||||
|
if counter < queryTimes:
|
||||||
|
counter += 0.5
|
||||||
|
time.sleep(0.5)
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
tdLog.info("query is success")
|
||||||
|
time.sleep(1)
|
||||||
|
continue
|
||||||
|
except Exception as e:
|
||||||
|
tdLog.notice("Try to query again, query times: %d "%i)
|
||||||
|
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
||||||
|
if i < queryTimes:
|
||||||
|
error_info = repr(e)
|
||||||
|
self.error_info = ','.join(error_info[error_info.index('(')+1:-1].split(",")[:-1]).replace("'","")
|
||||||
|
self.queryRows = 0
|
||||||
|
self.queryCols = 0
|
||||||
|
self.queryResult = None
|
||||||
|
|
||||||
|
if fullMatched:
|
||||||
|
if expectErrInfo != None:
|
||||||
|
if expectErrInfo == self.error_info:
|
||||||
|
tdLog.info("sql:%s, expected expectErrInfo '%s' occured" % (sql, expectErrInfo))
|
||||||
|
else:
|
||||||
|
tdLog.exit("%s(%d) failed: sql:%s, expectErrInfo '%s' occured, but not expected errno '%s'" % (caller.filename, caller.lineno, sql, self.error_info, expectErrInfo))
|
||||||
|
else:
|
||||||
|
if expectErrInfo != None:
|
||||||
|
if expectErrInfo in self.error_info:
|
||||||
|
tdLog.info("sql:%s, expected expectErrInfo '%s' occured" % (sql, expectErrInfo))
|
||||||
|
else:
|
||||||
|
tdLog.exit("%s(%d) failed: sql:%s, expectErrInfo %s occured, but not expected errno '%s'" % (caller.filename, caller.lineno, sql, self.error_info, expectErrInfo))
|
||||||
|
|
||||||
|
return self.error_info
|
||||||
|
elif i == queryTimes:
|
||||||
|
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
||||||
|
args = (caller.filename, caller.lineno, sql, repr(e))
|
||||||
|
tdLog.notice("%s(%d) failed: sql:%s, %s" % args)
|
||||||
|
raise Exception(repr(e))
|
||||||
|
i+=1
|
||||||
|
time.sleep(1)
|
||||||
|
pass
|
||||||
|
|
||||||
def is_err_sql(self, sql):
|
def is_err_sql(self, sql):
|
||||||
err_flag = True
|
err_flag = True
|
||||||
|
@ -471,25 +547,7 @@ class TDSql:
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
def execute(self, sql, queryTimes=30, show=False):
|
|
||||||
self.sql = sql
|
|
||||||
if show:
|
|
||||||
tdLog.info(sql)
|
|
||||||
i=1
|
|
||||||
while i <= queryTimes:
|
|
||||||
try:
|
|
||||||
self.affectedRows = self.cursor.execute(sql)
|
|
||||||
return self.affectedRows
|
|
||||||
except Exception as e:
|
|
||||||
tdLog.notice("Try to execute sql again, query times: %d "%i)
|
|
||||||
if i == queryTimes:
|
|
||||||
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
|
||||||
args = (caller.filename, caller.lineno, sql, repr(e))
|
|
||||||
tdLog.notice("%s(%d) failed: sql:%s, %s" % args)
|
|
||||||
raise Exception(repr(e))
|
|
||||||
i+=1
|
|
||||||
time.sleep(1)
|
|
||||||
pass
|
|
||||||
|
|
||||||
def checkAffectedRows(self, expectAffectedRows):
|
def checkAffectedRows(self, expectAffectedRows):
|
||||||
if self.affectedRows != expectAffectedRows:
|
if self.affectedRows != expectAffectedRows:
|
||||||
|
|
|
@ -339,44 +339,12 @@ class TDTestCase:
|
||||||
tdSql.checkData(0, 0, '999')
|
tdSql.checkData(0, 0, '999')
|
||||||
p = subprocess.run(["taos", '-s', "alter table test.meters drop column c1; alter table test.meters add column c12 int"])
|
p = subprocess.run(["taos", '-s', "alter table test.meters drop column c1; alter table test.meters add column c12 int"])
|
||||||
p.check_returncode()
|
p.check_returncode()
|
||||||
tdSql.query("select last(c1) from meters", queryTimes=1)
|
tdSql.query_success_failed("select ts, last(c1), c1, ts, c1 from meters", queryTimes=10, expectErrInfo="Invalid column name: c1")
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.query('select last(c12), c12, ts from meters', queryTimes=1)
|
||||||
tdSql.query('select last(*) from meters', queryTimes=1)
|
|
||||||
print(str(tdSql.queryResult))
|
|
||||||
tdSql.checkData(0, 1, None)
|
|
||||||
tdSql.query('select last(c1), c1, ts from meters', queryTimes=1)
|
|
||||||
tdSql.checkRows(1)
|
|
||||||
tdSql.checkData(0, 0, None)
|
|
||||||
tdSql.checkData(0, 1, None)
|
|
||||||
tdSql.checkData(0, 2, None)
|
|
||||||
|
|
||||||
try:
|
|
||||||
tdSql.query('select ts, last(c1), c1, ts, c1 from meters', queryTimes=1)
|
|
||||||
except Exception as e:
|
|
||||||
if str(e).count('Invalid column name') == 1:
|
|
||||||
print('column has been dropped, the cache has been updated: %s' % (str(e)))
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
raise
|
|
||||||
tdSql.checkRows(1)
|
|
||||||
tdSql.checkCols(5)
|
|
||||||
tdSql.checkData(0, 0, None)
|
|
||||||
tdSql.checkData(0, 1, None)
|
|
||||||
tdSql.checkData(0, 2, None)
|
|
||||||
tdSql.checkData(0, 3, None)
|
|
||||||
tdSql.checkData(0, 4, None)
|
|
||||||
|
|
||||||
try:
|
|
||||||
tdSql.query('select last(c1), last(c2), last(c3) from meters', queryTimes=1)
|
|
||||||
except Exception as e:
|
|
||||||
if str(e).count('Invalid column name') == 1:
|
|
||||||
print('column has been dropped, the cache has been updated: %s' % (str(e)))
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
raise
|
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
tdSql.checkCols(3)
|
tdSql.checkCols(3)
|
||||||
tdSql.checkData(0, 0, None)
|
tdSql.checkData(0, 0, None)
|
||||||
|
tdSql.checkData(0, 1, None)
|
||||||
|
|
||||||
def test_cache_scan_with_drop_column(self):
|
def test_cache_scan_with_drop_column(self):
|
||||||
tdSql.query('select last(*) from meters')
|
tdSql.query('select last(*) from meters')
|
||||||
|
|
Loading…
Reference in New Issue