TDengine/test/cases/13-StreamProcessing/99-Others/test_dev_basic3.py
2025-05-28 15:41:04 +08:00

108 lines
3.6 KiB
Python

import time
import math
from new_test_framework.utils import tdLog, tdSql, tdStream
class TestStreamDevBasic:
def setup_class(cls):
tdLog.debug(f"start to execute {__file__}")
def test_stream_dev_basic(self):
"""basic test
Verification testing during the development process.
Catalog:
- Streams:Others
Since: v3.3.3.7
Labels: common,ci
Jira: None
History:
- 2025-5-26 Simon Guan Created
"""
self.basic1()
# self.basic2()
def basic1(self):
tdLog.info(f"basic test 1")
tdStream.dropAllStreamsAndDbs()
tdStream.createSnode()
tdLog.info(f"=============== create database")
tdSql.prepare(dbname="test", vgroups=1)
tdLog.info(f"=============== create super table")
tdSql.execute(
f"create stable stb (ts timestamp, v1 int, v2 int) tags(t1 int);"
)
tdSql.query(f"show stables")
tdSql.checkRows(1)
tdLog.info(f"=============== write query data")
sqls = [
"insert into t1 using stb tags(1) values ('2025-01-01 00:00:00' , 0, 0);",
"insert into t2 using stb tags(2) values ('2025-01-01 00:00:00.102', 1, 0);",
"insert into t1 using stb tags(1) values ('2025-01-01 00:00:01' , 1, 1);",
"insert into t2 using stb tags(2) values ('2025-01-01 00:00:01.400', 2, 1);",
"insert into t1 using stb tags(1) values ('2025-01-01 00:00:02' , 2, 2);",
"insert into t2 using stb tags(2) values ('2025-01-01 00:00:02.600', 3, 2);",
]
tdSql.executes(sqls)
tdSql.query("select _wstart, avg(v1) from stb interval(1s)")
tdSql.printResult()
tdLog.info(f"=============== create trigger table")
tdSql.execute("create table stream_trigger (ts timestamp, v1 int, v2 int);")
tdSql.query(f"show tables")
tdSql.checkKeyExist("stream_trigger")
tdLog.info(f"=============== create stream")
sql1 = "create stream s1 interval(1s) sliding(1s) from stream_trigger partition by tbname into out1 tags (gid bigint as _tgrpid) as select _twstart ts, count(*) c1, avg(v1) c2 from stb where ts >= _twstart and ts < _twend;"
tdSql.execute(sql1)
tdStream.checkStreamStatus()
tdLog.info(f"=============== write trigger data")
tdSql.execute(
"insert into stream_trigger values ('2025-01-01 00:00:00', 0, 0), ('2025-01-01 00:00:01', 1, 1), ('2025-01-01 00:00:02', 2, 2);"
)
tdLog.info(f"=============== check stream result")
result_sql1 = "select ts, c1, c2 from test.out1"
tdSql.checkResultsByFunc(
sql=result_sql1,
func=lambda: tdSql.getRows() == 2
and tdSql.compareData(0, 0, "2025-01-01 00:00:00.000")
and tdSql.compareData(0, 1, 2)
and tdSql.compareData(0, 2, 0.5)
and tdSql.compareData(1, 0, "2025-01-01 00:00:01.000")
and tdSql.compareData(1, 1, 2)
and tdSql.compareData(1, 2, 1.5),
)
tdSql.query("desc test.out1")
tdSql.printResult()
tdSql.checkRows(4)
tdSql.checkData(0, 0, "ts")
tdSql.checkData(1, 0, "c1")
tdSql.checkData(2, 0, "c2")
tdSql.checkData(3, 0, "gid")
tdSql.checkData(0, 1, "TIMESTAMP")
tdSql.checkData(1, 1, "BIGINT")
tdSql.checkData(2, 1, "DOUBLE")
tdSql.checkData(3, 1, "BIGINT")
tdSql.checkData(0, 2, "8")
tdSql.checkData(1, 2, "8")
tdSql.checkData(2, 2, "8")
tdSql.checkData(3, 2, "8")
tdSql.checkData(3, 3, "TAG")