From d6fdf0b920462ba5e5210e7df71649654c0c1302 Mon Sep 17 00:00:00 2001 From: Ping Xiao Date: Tue, 21 Jun 2022 11:34:06 +0800 Subject: [PATCH] test: add test cases for OpenTSDB line and json protocol --- tests/pytest/dbmgmt/dbNameCaseSensitive.py | 2 +- .../pytest/insert/schemalessCaseSensitive.py | 87 ++++++++++++++++++- tests/pytest/table/tbNameCaseSensitive.py | 2 +- 3 files changed, 85 insertions(+), 6 deletions(-) diff --git a/tests/pytest/dbmgmt/dbNameCaseSensitive.py b/tests/pytest/dbmgmt/dbNameCaseSensitive.py index dd19a2b25b..065b92c6e2 100644 --- a/tests/pytest/dbmgmt/dbNameCaseSensitive.py +++ b/tests/pytest/dbmgmt/dbNameCaseSensitive.py @@ -52,7 +52,7 @@ class TDTestCase: tdSql.checkRows(0) tdSql.query("show create database `Db`") tdSql.checkRows(1) - tdSql.checkData(0, 1, "CREATE DATABASE `Db` REPLICA 1 QUORUM 1 DAYS 10 KEEP 3650 CACHE 16 BLOCKS 6 MINROWS 100 MAXROWS 4096 WAL 2 FSYNC 1000 COMP 2 CACHELAST 0 PRECISION 'ms' UPDATE 0") + tdSql.checkData(0, 1, "CREATE DATABASE `Db` REPLICA 1 QUORUM 1 DAYS 10 KEEP 3650 CACHE 16 BLOCKS 6 MINROWS 100 MAXROWS 4096 WAL 2 FSYNC 1000 COMP 2 CACHELAST 1 PRECISION 'ms' UPDATE 0") tdSql.execute("drop database db") diff --git a/tests/pytest/insert/schemalessCaseSensitive.py b/tests/pytest/insert/schemalessCaseSensitive.py index c7db1bed1a..bf92624ff1 100644 --- a/tests/pytest/insert/schemalessCaseSensitive.py +++ b/tests/pytest/insert/schemalessCaseSensitive.py @@ -15,6 +15,7 @@ from util.log import * from util.cases import * from util.sql import * from util.types import TDSmlProtocolType, TDSmlTimestampType +import json class TDTestCase: def init(self, conn, logSql): @@ -24,9 +25,19 @@ class TDTestCase: def run(self): - # schemaless - tdSql.execute("create database line_insert precision 'ns' ") - tdSql.execute("use line_insert") + # influxDB Line Protocol + self.influxDBLineProtocol() + + # OpenTSDB Line Protocol + self.openTSDBLineProtocol() + + # OpenTSDB JSON Protocol + self.openTSDBJSONProtocol() + + def influxDBLineProtocol(self): + print("===== influxDB Line Protocol Case Sensitive Test =====\n") + tdSql.execute("create database influxdb precision 'ns' ") + tdSql.execute("use influxdb") lines = [ "St,deviceId=1i voltage=1,phase=\"Test\" 1626006833639000000", "St,DeviceId=3i voltage=2,phase=\"Test\" 1626006833639000000", @@ -41,7 +52,7 @@ class TDTestCase: "超级表,deviceId=\"sensor0\" 电压=3i 1646053743694400035", ] - code = self._conn.schemaless_insert(lines, TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value) + self._conn.schemaless_insert(lines, TDSmlProtocolType.LINE.value, TDSmlTimestampType.NANO_SECOND.value) tdSql.query("show stables") tdSql.checkRows(3) @@ -60,6 +71,74 @@ class TDTestCase: tdSql.query("select * from `超级表`") tdSql.checkRows(1) + def openTSDBLineProtocol(self): + print("===== OpenTSDB Line Protocol Case Sensitive Test =====\n") + tdSql.execute("create database opentsdbline") + tdSql.execute("use opentsdbline") + + # format: =[ =] + lines = [ + "meters.current 1648432611249 10.3 location=California.SanFrancisco groupid=2", + "meters.Current 1648432611250 12.6 location=California.SanFrancisco groupid=2", + "meters.Current 1648432611249 10.8 Location=California.LosAngeles groupid=3", + "Meters.current 1648432611250 11.3 location=California.LosAngeles Groupid=3", + "电表 1648432611250 11.3 位置=California.LosAngeles Groupid=3" + ] + + self._conn.schemaless_insert(lines, TDSmlProtocolType.TELNET.value, None) + tdSql.query("show stables") + tdSql.checkRows(4) + + tdSql.query("show tables") + tdSql.checkRows(5) + + tdSql.query("describe `meters.Current`") + tdSql.checkRows(5) + tdSql.checkData(2, 0, "groupid") + tdSql.checkData(3, 0, "location") + tdSql.checkData(4, 0, "Location") + + tdSql.query("describe `Meters.current`") + tdSql.checkRows(4) + tdSql.checkData(2, 0, "Groupid") + tdSql.checkData(3, 0, "location") + + tdSql.query("describe `电表`") + tdSql.checkRows(4) + tdSql.checkData(2, 0, "Groupid") + tdSql.checkData(3, 0, "位置") + + def openTSDBJSONProtocol(self): + print("===== OpenTSDB JSON Protocol Case Sensitive Test =====\n") + tdSql.execute("create database opentsdbjson") + tdSql.execute("use opentsdbjson") + + lines = [ + {"metric": "meters.current", "timestamp": 1648432611249, "value": 10.3, "tags": {"location": "California.SanFrancisco", "groupid": 2}}, + {"metric": "meters.voltage", "timestamp": 1648432611249, "value": 219, "tags": {"Location": "California.LosAngeles", "groupid": 1}}, + {"metric": "meters.Current", "timestamp": 1648432611250, "value": 12.6, "tags": {"location": "California.SanFrancisco", "groupid": 2}}, + {"metric": "meters.voltage", "timestamp": 1648432611250, "value": 221, "tags": {"location": "California.LosAngeles", "groupid": 1}}, + {"metric": "电压", "timestamp": 1648432611250, "value": 221, "tags": {"位置": "California.LosAngeles", "groupid": 1}} + ] + + self._conn.schemaless_insert([json.dumps(lines)], TDSmlProtocolType.JSON.value, None) + tdSql.query("show stables") + tdSql.checkRows(4) + + tdSql.query("show tables") + tdSql.checkRows(5) + + tdSql.query("describe `meters.Current`") + tdSql.checkRows(4) + + tdSql.query("describe `meters.voltage`") + tdSql.checkRows(5) + tdSql.checkData(3, 0, "Location") + tdSql.checkData(4, 0, "location") + + tdSql.query("describe `电压`") + tdSql.checkRows(4) + tdSql.checkData(3, 0, "位置") def stop(self): tdSql.close() diff --git a/tests/pytest/table/tbNameCaseSensitive.py b/tests/pytest/table/tbNameCaseSensitive.py index eafef9fc57..ee6a24d786 100644 --- a/tests/pytest/table/tbNameCaseSensitive.py +++ b/tests/pytest/table/tbNameCaseSensitive.py @@ -118,7 +118,7 @@ class TDTestCase: tdSql.query("show tables") tdSql.checkRows(8) tdSql.query("show create table `普通表`") - tdSql.checkData(0, 0, "CREATE TABLE `普通表` (`ts` TIMESTAMP,`c1` INT)") + tdSql.checkData(0, 1, "CREATE TABLE `普通表` (`ts` TIMESTAMP,`c1` INT)") def stop(self): tdSql.close() -- GitLab