diff --git a/tests/pytest/fulltest.sh b/tests/pytest/fulltest.sh index 1b879b3cc69e955919c5ceb2cf7543fb3de058bf..ec06eb38ef038eab2d8cfa798070be84e7f7623e 100755 --- a/tests/pytest/fulltest.sh +++ b/tests/pytest/fulltest.sh @@ -7,6 +7,8 @@ python3 ./test.py $1 -f insert/bool.py python3 ./test.py $1 -f insert/double.py python3 ./test.py $1 -f insert/smallint.py python3 ./test.py $1 -f insert/tinyint.py +python3 ./test.py $1 -f insert/date.py +python3 ./test.py $1 -f insert/binary.py python3 ./test.py $1 -f import_merge/importBlock1HO.py python3 ./test.py $1 -f import_merge/importBlock1HPO.py python3 ./test.py $1 -f import_merge/importBlock1H.py diff --git a/tests/pytest/insert/binary.py b/tests/pytest/insert/binary.py new file mode 100644 index 0000000000000000000000000000000000000000..9989865f96af21d5d806c42660a79f1be62b5b4c --- /dev/null +++ b/tests/pytest/insert/binary.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- + +import sys +from util.log import * +from util.cases import * +from util.sql import * + + +class TDTestCase: + def init(self, conn): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor()) + + def run(self): + tdSql.prepare() + + + tdLog.info('=============== step1') + tdLog.info('create table tb (ts timestamp, speed binary(5))') + tdSql.execute('create table tb (ts timestamp, speed binary(5))') + tdLog.info("insert into tb values (now, ) -x step1") + tdSql.error("insert into tb values (now, )") + tdLog.info('=============== step2') + tdLog.info("insert into tb values (now+1a, '1234')") + tdSql.execute("insert into tb values (now+1a, '1234')") + tdLog.info('select speed from tb order by ts desc') + tdSql.query('select speed from tb order by ts desc') + tdLog.info('tdSql.checkRow(1)') + tdSql.checkRows(1) + tdLog.info('tdSql.checkData(0, 0, 1234)') + tdSql.checkData(0, 0, 1234) + tdLog.info('=============== step3') + tdLog.info("insert into tb values (now+2a, '23456')") + tdSql.execute("insert into tb values (now+2a, '23456')") + tdLog.info('select speed from tb order by ts desc') + tdSql.query('select speed from tb order by ts desc') + tdLog.info('tdSql.checkRow(2)') + tdSql.checkRows(2) + tdLog.info('==> $data00') + tdLog.info('tdSql.checkData(0, 0, 23456)') + tdSql.checkData(0, 0, 23456) + tdLog.info('=============== step4') + tdLog.info("insert into tb values (now+3a, '345678')") + tdSql.error("insert into tb values (now+3a, '345678')") + tdLog.info("insert into tb values (now+3a, '34567')") + tdSql.execute("insert into tb values (now+3a, '34567')") + tdLog.info('select speed from tb order by ts desc') + tdSql.query('select speed from tb order by ts desc') + tdLog.info('tdSql.checkRow(3)') + tdSql.checkRows(3) + tdLog.info('==> $data00') + tdLog.info('tdSql.checkData(0, 0, 34567)') + tdSql.checkData(0, 0, 34567) + tdLog.info('drop database db') + tdSql.execute('drop database db') + tdLog.info('show databases') + tdSql.query('show databases') + tdLog.info('tdSql.checkRow(0)') + tdSql.checkRows(0) +# convert end + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/pytest/insert/date.py b/tests/pytest/insert/date.py new file mode 100644 index 0000000000000000000000000000000000000000..716d799cb0c05057bd87b8721491ad9e0e9f3683 --- /dev/null +++ b/tests/pytest/insert/date.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- + +import sys +from util.log import * +from util.cases import * +from util.sql import * + + +class TDTestCase: + def init(self, conn): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor()) + + def run(self): + tdSql.prepare() + + # TSIM: system sh/stop_dnodes.sh + # TSIM: + # TSIM: system sh/ip.sh -i 1 -s up + # TSIM: system sh/deploy.sh -n dnode1 -m 192.168.0.1 -i 192.168.0.1 + # TSIM: system sh/cfg.sh -n dnode1 -c commitLog -v 0 + # TSIM: system sh/exec.sh -n dnode1 -s start + # TSIM: + # TSIM: sleep 3000 + # TSIM: sql connect + # TSIM: + # TSIM: $i = 0 + # TSIM: $dbPrefix = lm_da_db + # TSIM: $tbPrefix = lm_da_tb + # TSIM: $db = $dbPrefix . $i + # TSIM: $tb = $tbPrefix . $i + # TSIM: + # TSIM: print =============== step1 + tdLog.info('=============== step1') + # TSIM: sql create database $db + # TSIM: sql use $db + # TSIM: + # TSIM: sql create table $tb (ts timestamp, speed int) + tdLog.info("create table tb0 (ts timestamp, speed int)") + tdSql.execute('create table tb0 (ts timestamp, speed int)') + # TSIM: sql insert into $tb values ('2017-01-01 08:00:00.001', 1) + tdLog.info("insert into tb0 values ('2017-01-01 08:00:00.001', 1)") + tdSql.execute("insert into tb0 values ('2017-01-01 08:00:00.001', 1)") + # TSIM: sql select ts from $tb + tdLog.info('select ts from tb0') + tdSql.query('select ts from tb0') + # TSIM: if $rows != 1 then + tdLog.info('tdSql.checkRow(1)') + tdSql.checkRows(1) + # TSIM: return -1 + # TSIM: endi + # TSIM: if $data00 != @17-01-01 08:00:00.001@ then + tdLog.info("tdSql.checkData(0, 0, 17-01-01 08:00:00.001)") + expectedData = datetime.datetime.strptime( + "17-01-01 08:00:00.001", "%y-%m-%d %H:%M:%S.%f") + tdSql.checkData(0, 0, expectedData) + # TSIM: return -1 + # TSIM: endi + # TSIM: + # TSIM: print =============== step2 + tdLog.info('=============== step2') + # TSIM: sql insert into $tb values ('2017-08-28 00:23:46.429+ 1a', 2) + tdLog.info("insert into tb0 values ('2017-08-28 00:23:46.429+ 1a', 2)") + tdSql.execute( + "insert into tb0 values ('2017-08-28 00:23:46.429+ 1a', 2)") + # TSIM: #sql insert into $tb values ('2017-08-28 00:23:46cd .429', 2) + # TSIM: sql select ts from $tb + tdLog.info('select ts from tb0') + tdSql.query('select ts from tb0') + # TSIM: if $rows != 2 then + tdLog.info('tdSql.checkRow(2)') + tdSql.checkRows(2) + # TSIM: return -1 + # TSIM: endi + # TSIM: + # TSIM: print =============== step3 + tdLog.info('=============== step3') + # TSIM: #sql insert into $tb values ('1970-01-01 08:00:00.000', 3) + # TSIM: #sql insert into $tb values ('1970-01-01 08:00:00.000', 3) + # TSIM: sql select ts from $tb + tdLog.info('select ts from tb0') + tdSql.query('select ts from tb0') + # TSIM: if $rows != 2 then + tdLog.info('tdSql.checkRow(2)') + tdSql.checkRows(2) + # TSIM: return -1 + # TSIM: endi + # TSIM: + # TSIM: print =============== step4 + tdLog.info('=============== step4') + # TSIM: sql insert into $tb values(now, 4); + tdLog.info("insert into tb0 values(now, 4);") + tdSql.execute("insert into tb0 values(now, 4);") + # TSIM: sql insert into $tb values(now+1a, 5); + tdLog.info("insert into tb0 values(now+1a, 5);") + tdSql.execute("insert into tb0 values(now+1a, 5);") + # TSIM: sql insert into $tb values(now+1s, 6); + tdLog.info("insert into tb0 values(now+1s, 6);") + tdSql.execute("insert into tb0 values(now+1s, 6);") + # TSIM: sql insert into $tb values(now+1m, 7); + tdLog.info("insert into tb0 values(now+1m, 7);") + tdSql.execute("insert into tb0 values(now+1m, 7);") + # TSIM: sql insert into $tb values(now+1h, 8); + tdLog.info("insert into tb0 values(now+1h, 8);") + tdSql.execute("insert into tb0 values(now+1h, 8);") + # TSIM: sql insert into $tb values(now+1d, 9); + tdLog.info("insert into tb0 values(now+1d, 9);") + tdSql.execute("insert into tb0 values(now+1d, 9);") + # TSIM: sql_error insert into $tb values(now+3w, 10); + tdLog.info("insert into tb0 values(now+3w, 10);") + tdSql.error("insert into tb0 values(now+3w, 10);") + # TSIM: sql_error insert into $tb values(now+1n, 11); + tdLog.info("insert into tb0 values(now+1n, 11);") + tdSql.error("insert into tb0 values(now+1n, 11);") + # TSIM: sql_error insert into $tb values(now+1y, 12); + tdLog.info("insert into tb0 values(now+1y, 12);") + tdSql.error("insert into tb0 values(now+1y, 12);") + # TSIM: + # TSIM: print =============== step5 + tdLog.info('=============== step5') + # TSIM: sql_error insert into $tb values ('9999-12-31 213:59:59.999', + # 13) + tdLog.info("insert into tb0 values ('9999-12-31 213:59:59.999', 13)") + tdSql.error("insert into tb0 values ('9999-12-31 213:59:59.999', 13)") + # TSIM: sql select ts from $tb + tdLog.info('select ts from tb0') + tdSql.query('select ts from tb0') + # TSIM: print $rows + tdLog.info('$rows') + # TSIM: if $rows != 8 then + tdLog.info('tdSql.checkRow(8)') + tdSql.checkRows(8) + # TSIM: return -1 + # TSIM: endi + # TSIM: + # TSIM: print =============== step6 + tdLog.info('=============== step6') + # TSIM: sql_error insert into $tb values ('9999-12-99 23:59:59.999', + # 13) + tdLog.info("insert into tb0 values ('9999-12-99 23:59:59.999', 13)") + tdSql.error("insert into tb0 values ('9999-12-99 23:59:59.999', 13)") + # TSIM: + # TSIM: sql select ts from $tb + tdLog.info('select ts from tb0') + tdSql.query('select ts from tb0') + # TSIM: if $rows != 8 then + tdLog.info('tdSql.checkRow(8)') + tdSql.checkRows(8) + # TSIM: return -1 + # TSIM: endi + # TSIM: + # TSIM: print =============== step7 + tdLog.info('=============== step7') + # TSIM: $i = 1 + # TSIM: $tb = $tbPrefix . $i + # TSIM: sql create table $tb (ts timestamp, ts2 timestamp) + tdLog.info("create table tb1 (ts timestamp, ts2 timestamp)") + tdSql.execute('create table tb1 (ts timestamp, ts2 timestamp)') + # TSIM: + # TSIM: print =============== step8 + tdLog.info('=============== step8') + # TSIM: sql insert into $tb values (now, now) + tdLog.info("insert into tb1 values (now, now)") + tdSql.execute("insert into tb1 values (now, now)") + # TSIM: sql select * from $tb + tdLog.info('select * from tb1') + tdSql.query('select * from tb1') + # TSIM: if $rows != 1 then + tdLog.info('tdSql.checkRow(1)') + tdSql.checkRows(1) + # TSIM: return -1 + # TSIM: endi + # TSIM: + # TSIM: sql drop database $db + tdLog.info('drop database db') + tdSql.execute('drop database db') + # TSIM: sql show databases + tdLog.info('show databases') + tdSql.query('show databases') + # TSIM: if $rows != 0 then + tdLog.info('tdSql.checkRow(0)') + tdSql.checkRows(0) + # TSIM: return -1 + # TSIM: endi +# convert end + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/pytest/util/sql.py b/tests/pytest/util/sql.py index 15567ec3ca90ad129fda9a642fd364a36f3d4c74..a1f7dd2f6468be7dee1d23e3d64d6070e7540e28 100644 --- a/tests/pytest/util/sql.py +++ b/tests/pytest/util/sql.py @@ -44,7 +44,7 @@ class TDSql: except BaseException: expectErrNotOccured = False if expectErrNotOccured: - tdLog.exit("sql:%.40s, expect error not occured" % (sql)) + tdLog.exit("failed: sql:%.40s, expect error not occured" % (sql)) else: tdLog.info("sql:%.40s, expect error occured" % (sql)) @@ -71,28 +71,31 @@ class TDSql: def checkData(self, row, col, data): if row < 0: tdLog.exit( - "sql:%.40s, row:%d is smaller than zero" % + "failed: sql:%.40s, row:%d is smaller than zero" % (self.sql, row)) if col < 0: tdLog.exit( - "sql:%.40s, col:%d is smaller than zero" % + "failed: sql:%.40s, col:%d is smaller than zero" % (self.sql, col)) if row >= self.queryRows: tdLog.exit( - "sql:%.40s, row:%d is larger than queryRows:%d" % + "failed: sql:%.40s, row:%d is larger than queryRows:%d" % (self.sql, row, self.queryRows)) if col >= self.queryCols: tdLog.exit( - "sql:%.40s, col:%d is larger than queryRows:%d" % + "failed: sql:%.40s, col:%d is larger than queryRows:%d" % (self.sql, col, self.queryCols)) if self.queryResult[row][col] != data: tdLog.exit( - "sql:%.40s row:%d col:%d data:%s != expect:%s" % + "failed: sql:%.40s row:%d col:%d data:%s != expect:%s" % (self.sql, row, col, self.queryResult[row][col], data)) if data is None: tdLog.info("sql:%.40s, row:%d col:%d data:%s == expect:%s" % (self.sql, row, col, self.queryResult[row][col], data)) + elif isinstance(data, datetime.date): + tdLog.info("sql:%.40s, row:%d col:%d data:%s == expect:%s" % + (self.sql, row, col, self.queryResult[row][col], data)) else: tdLog.info("sql:%.40s, row:%d col:%d data:%s == expect:%d" % (self.sql, row, col, self.queryResult[row][col], data)) @@ -100,19 +103,19 @@ class TDSql: def getData(self, row, col): if row < 0: tdLog.exit( - "sql:%.40s, row:%d is smaller than zero" % + "failed: sql:%.40s, row:%d is smaller than zero" % (self.sql, row)) if col < 0: tdLog.exit( - "sql:%.40s, col:%d is smaller than zero" % + "failed: sql:%.40s, col:%d is smaller than zero" % (self.sql, col)) if row >= self.queryRows: tdLog.exit( - "sql:%.40s, row:%d is larger than queryRows:%d" % + "failed: sql:%.40s, row:%d is larger than queryRows:%d" % (self.sql, row, self.queryRows)) if col >= self.queryCols: tdLog.exit( - "sql:%.40s, col:%d is larger than queryRows:%d" % + "failed: sql:%.40s, col:%d is larger than queryRows:%d" % (self.sql, col, self.queryCols)) return self.queryResult[row][col] @@ -131,7 +134,7 @@ class TDSql: def checkAffectedRows(self, expectAffectedRows): if self.affectedRows != expectAffectedRows: - tdLog.exit("sql:%.40s, affectedRows:%d != expect:%d" % + tdLog.exit("failed: sql:%.40s, affectedRows:%d != expect:%d" % (self.sql, self.affectedRows, expectAffectedRows)) tdLog.info("sql:%.40s, affectedRows:%d == expect:%d" % (self.sql, self.affectedRows, expectAffectedRows))