Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
0c6b8bb2
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0c6b8bb2
编写于
12月 24, 2021
作者:
W
wenzhouwww
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-11899]<test>(insert) : add test case for stmt bind part params error
上级
171bb40c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
188 addition
and
3 deletion
+188
-3
tests/system-test/1-insert/stmt_error.py
tests/system-test/1-insert/stmt_error.py
+187
-0
tests/system-test/fulltest-insert.sh
tests/system-test/fulltest-insert.sh
+1
-3
未找到文件。
tests/system-test/1-insert/stmt_error.py
0 → 100644
浏览文件 @
0c6b8bb2
# encoding:UTF-8
from
taos
import
*
from
ctypes
import
*
from
datetime
import
datetime
import
taos
import
taos
import
time
from
util.log
import
*
from
util.cases
import
*
from
util.sql
import
*
from
util.dnodes
import
*
class
TDTestCase
:
def
__init__
(
self
):
self
.
err_case
=
0
self
.
curret_case
=
0
def
caseDescription
(
self
):
'''
case1 <wenzhouwww>: [TD-11899] : this is an test case for check stmt error use .
'''
return
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
def
conn
(
self
):
# type: () -> taos.TaosConnection
return
connect
()
def
test_stmt_insert
(
self
,
conn
):
# type: (TaosConnection) -> None
dbname
=
"pytest_taos_stmt"
try
:
conn
.
execute
(
"drop database if exists %s"
%
dbname
)
conn
.
execute
(
"create database if not exists %s"
%
dbname
)
conn
.
select_db
(
dbname
)
conn
.
execute
(
"create table if not exists log(ts timestamp, bo bool, nil tinyint, ti tinyint, si smallint, ii int,
\
bi bigint, tu tinyint unsigned, su smallint unsigned, iu int unsigned, bu bigint unsigned,
\
ff float, dd double, bb binary(100), nn nchar(100), tt timestamp)"
,
)
conn
.
load_table_info
(
"log"
)
stmt
=
conn
.
statement
(
"insert into log values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
)
params
=
new_bind_params
(
16
)
params
[
0
].
timestamp
(
1626861392589
,
PrecisionEnum
.
Milliseconds
)
params
[
1
].
bool
(
True
)
params
[
2
].
null
()
params
[
3
].
tinyint
(
2
)
params
[
4
].
smallint
(
3
)
params
[
5
].
int
(
4
)
params
[
6
].
bigint
(
5
)
params
[
7
].
tinyint_unsigned
(
6
)
params
[
8
].
smallint_unsigned
(
7
)
params
[
9
].
int_unsigned
(
8
)
params
[
10
].
bigint_unsigned
(
9
)
params
[
11
].
float
(
10.1
)
params
[
12
].
double
(
10.11
)
params
[
13
].
binary
(
"hello"
)
params
[
14
].
nchar
(
"stmt"
)
params
[
15
].
timestamp
(
1626861392589
,
PrecisionEnum
.
Milliseconds
)
stmt
.
bind_param
(
params
)
stmt
.
execute
()
result
=
stmt
.
use_result
()
assert
result
.
affected_rows
==
1
result
.
close
()
stmt
.
close
()
stmt
=
conn
.
statement
(
"select * from log"
)
stmt
.
execute
()
result
=
stmt
.
use_result
()
row
=
result
.
next
()
print
(
row
)
assert
row
[
2
]
==
None
for
i
in
range
(
3
,
11
):
assert
row
[
i
]
==
i
-
1
#float == may not work as expected
# assert row[10] == c_float(10.1)
assert
row
[
12
]
==
10.11
assert
row
[
13
]
==
"hello"
assert
row
[
14
]
==
"stmt"
conn
.
execute
(
"drop database if exists %s"
%
dbname
)
conn
.
close
()
except
Exception
as
err
:
conn
.
execute
(
"drop database if exists %s"
%
dbname
)
conn
.
close
()
raise
err
def
test_stmt_insert_error
(
self
,
conn
):
# type: (TaosConnection) -> None
dbname
=
"pytest_taos_stmt_error"
try
:
conn
.
execute
(
"drop database if exists %s"
%
dbname
)
conn
.
execute
(
"create database if not exists %s"
%
dbname
)
conn
.
select_db
(
dbname
)
conn
.
execute
(
"create table if not exists log(ts timestamp, bo bool, nil tinyint, ti tinyint, si smallint, ii int,
\
bi bigint, tu tinyint unsigned, su smallint unsigned, iu int unsigned, bu bigint unsigned,
\
ff float, dd double, bb binary(100), nn nchar(100), tt timestamp , error_data int )"
,
)
conn
.
load_table_info
(
"log"
)
stmt
=
conn
.
statement
(
"insert into log values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,1000)"
)
params
=
new_bind_params
(
16
)
params
[
0
].
timestamp
(
1626861392589
,
PrecisionEnum
.
Milliseconds
)
params
[
1
].
bool
(
True
)
params
[
2
].
null
()
params
[
3
].
tinyint
(
2
)
params
[
4
].
smallint
(
3
)
params
[
5
].
int
(
4
)
params
[
6
].
bigint
(
5
)
params
[
7
].
tinyint_unsigned
(
6
)
params
[
8
].
smallint_unsigned
(
7
)
params
[
9
].
int_unsigned
(
8
)
params
[
10
].
bigint_unsigned
(
9
)
params
[
11
].
float
(
10.1
)
params
[
12
].
double
(
10.11
)
params
[
13
].
binary
(
"hello"
)
params
[
14
].
nchar
(
"stmt"
)
params
[
15
].
timestamp
(
1626861392589
,
PrecisionEnum
.
Milliseconds
)
stmt
.
bind_param
(
params
)
stmt
.
execute
()
result
=
stmt
.
use_result
()
assert
result
.
affected_rows
==
1
result
.
close
()
stmt
.
close
()
stmt
=
conn
.
statement
(
"select * from log"
)
stmt
.
execute
()
result
=
stmt
.
use_result
()
row
=
result
.
next
()
print
(
row
)
assert
row
[
2
]
==
None
for
i
in
range
(
3
,
11
):
assert
row
[
i
]
==
i
-
1
#float == may not work as expected
# assert row[10] == c_float(10.1)
assert
row
[
12
]
==
10.11
assert
row
[
13
]
==
"hello"
assert
row
[
14
]
==
"stmt"
conn
.
execute
(
"drop database if exists %s"
%
dbname
)
conn
.
close
()
except
Exception
as
err
:
conn
.
execute
(
"drop database if exists %s"
%
dbname
)
conn
.
close
()
raise
err
def
run
(
self
):
self
.
test_stmt_insert
(
self
.
conn
())
try
:
self
.
test_stmt_insert_error
(
self
.
conn
())
except
Exception
as
error
:
if
str
(
error
)
==
'[0x0200]: invalid operation: only ? allowed in values'
:
tdLog
.
info
(
'=========stmt error occured for bind part colum =============='
)
else
:
tdLog
.
exit
(
"expect error not occured"
)
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tests/system-test/fulltest-insert.sh
浏览文件 @
0c6b8bb2
python3 ./test.py
-f
1-insert/batchInsert.py
python3 test.py
-f
1-insert/TD-11970.py
python3 test.py
-f
1-insert/stmt_error.py
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录