mirror of
https://github.com/emqx/neuron.git
synced 2026-10-29 07:06:32 +08:00
Refactor functionality tests
1. Refactor http api keywords to be more functional 2. Move tag compare keywords to common.resource
This commit is contained in:
+17
-1
@@ -47,11 +47,14 @@ class Node(object):
|
||||
pass
|
||||
|
||||
def Get_Node_By_Name(self, snodes, name):
|
||||
for node in snodes[0]:
|
||||
for node in snodes:
|
||||
if node['name'] == name:
|
||||
return node['id']
|
||||
return 0
|
||||
|
||||
def Node_With_Name_Should_Exist(self, snodes, name):
|
||||
assert 0 != self.Get_Node_By_Name(snodes, name)
|
||||
|
||||
|
||||
class Tag(object):
|
||||
|
||||
@@ -94,6 +97,19 @@ class Read(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def Compare_Tag_Value_Bool(self, tags, id, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
if tag['id'] == int(id):
|
||||
if isinstance(value, str):
|
||||
if (tag['value'] == False and value.lower() == "false" or
|
||||
tag['value'] == True and value.lower() == "true"):
|
||||
ret = 0
|
||||
elif tag['value'] == int(value):
|
||||
ret = 0
|
||||
break
|
||||
return ret
|
||||
|
||||
def Compare_Tag_Value_Int(self, tags, id, value):
|
||||
ret = -1
|
||||
for tag in tags:
|
||||
|
||||
+168
-101
@@ -4,153 +4,220 @@ Resource common.resource
|
||||
|
||||
*** Keywords ***
|
||||
|
||||
Check Error Code
|
||||
[Arguments] ${result} ${errcode}
|
||||
Integer response body error ${errcode}
|
||||
|
||||
Check Response Status
|
||||
[Arguments] ${result} ${status}
|
||||
Integer response status ${status}
|
||||
|
||||
LOGIN
|
||||
POST /api/v2/login {"name": "admin", "pass":"0000"}
|
||||
POST /api/v2/login {"name": "admin", "pass":"0000"}
|
||||
|
||||
Integer response status 200
|
||||
Integer response status 200
|
||||
|
||||
${token} String $.token
|
||||
[Return] ${token}[0]
|
||||
${token} String $.token
|
||||
${jwt} = Catenate Bearer ${token}[0]
|
||||
Set Headers {"Authorization":"${jwt}"}
|
||||
|
||||
[Return] ${token}[0]
|
||||
|
||||
LOGOUT
|
||||
POST /api/v2/logout
|
||||
Integer response status 200
|
||||
|
||||
Get Node ID
|
||||
[Arguments] ${node_type} ${node_name}
|
||||
GET /api/v2/node?type=${node_type}
|
||||
Integer response status 200
|
||||
${tmp} Array $.nodes
|
||||
${node_id} Get Node By Name ${tmp} ${node_name}
|
||||
|
||||
should not be equal as integers ${node_id} 0
|
||||
|
||||
[RETURN] ${node_id}
|
||||
POST /api/v2/logout
|
||||
Integer response status 200
|
||||
|
||||
Add Node
|
||||
[Arguments] ${node_type} ${node_name} ${plugin_name}
|
||||
[Arguments] &{args}
|
||||
POST /api/v2/node ${args}
|
||||
|
||||
POST /api/v2/node {"type": ${node_type}, "name": "${node_name}", "plugin_name": "${plugin_name}"}
|
||||
Integer response status 200
|
||||
Integer response body error ${ERR_SUCCESS}
|
||||
${res} = Object response body
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
${node_id} Get Node ID ${node_type} ${node_name}
|
||||
should not be equal as integers ${node_id} 0
|
||||
[RETURN] ${node_id}
|
||||
Add Node And Return ID
|
||||
[Arguments] ${node_type} ${node_name} ${plugin_name}
|
||||
${res} = Add Node type=${${node_type}} name=${node_name} plugin_name=${plugin_name}
|
||||
|
||||
Check Response Status ${res} 200
|
||||
Check Error Code ${res} ${ERR_SUCCESS}
|
||||
|
||||
${node_id} = Get Node ID ${node_type} ${node_name}
|
||||
Should Not Be Equal As Integers ${node_id} 0
|
||||
|
||||
[RETURN] ${node_id}
|
||||
|
||||
Get Nodes
|
||||
[Arguments] ${node_type}
|
||||
GET /api/v2/node?type=${node_type}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Update Node
|
||||
[Arguments] ${node_id} ${node_name}
|
||||
PUT /api/v2/node {"id": ${node_id}, "name": "${node_name}"}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Del Node
|
||||
[Arguments] ${node_id}
|
||||
[Arguments] ${node_id}
|
||||
Delete /api/v2/node {"id": ${node_id}}
|
||||
${res} = Object response body
|
||||
|
||||
Delete /api/v2/node {"id": ${node_id}}
|
||||
Integer response status 200
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Get Node ID
|
||||
[Arguments] ${node_type} ${node_name}
|
||||
${res} = Get Nodes ${node_type}
|
||||
Check Response Status ${res} 200
|
||||
|
||||
${node_id} Get Node By Name ${res}[nodes] ${node_name}
|
||||
|
||||
Should Not Be Equal As Integers ${node_id} 0
|
||||
|
||||
[RETURN] ${node_id}
|
||||
|
||||
Node Setting
|
||||
[Arguments] ${node_id} ${config}
|
||||
[Arguments] ${node_id} ${config}
|
||||
POST /api/v2/node/setting {"node_id": ${node_id}, "params": ${config}}
|
||||
${res} = Object response body
|
||||
|
||||
POST /api/v2/node/setting {"node_id": ${node_id}, "params": ${config}}
|
||||
Integer response status 200
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Get Node Setting
|
||||
[Arguments] ${node_id}
|
||||
GET /api/v2/node/setting?node_id=${node_id}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Get Node State
|
||||
[Arguments] ${node_id}
|
||||
[Arguments] ${node_id}
|
||||
GET /api/v2/node/state?node_id=${node_id}
|
||||
${running} = Integer $.running
|
||||
${link} = Integer $.link
|
||||
|
||||
GET /api/v2/node/state?node_id=${node_id}
|
||||
Integer response status 200
|
||||
|
||||
${running} Integer $.running
|
||||
${link} Integer $.link
|
||||
|
||||
[RETURN] ${running}[0] ${link}[0]
|
||||
[RETURN] ${running}[0] ${link}[0]
|
||||
|
||||
Node Ctl
|
||||
[Arguments] ${node_id} ${cmd}
|
||||
[Arguments] ${node_id} ${cmd}
|
||||
POST /api/v2/node/ctl {"id": ${node_id}, "cmd": ${cmd}}
|
||||
${res} = Object response body
|
||||
|
||||
POST /api/v2/node/ctl {"id": ${node_id}, "cmd": ${cmd}}
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Integer response status 200
|
||||
Ping
|
||||
POST /api/v2/ping
|
||||
Integer response status 200
|
||||
Object response body {}
|
||||
|
||||
Add Group Config
|
||||
[Arguments] ${node_id} ${grp_config_name}
|
||||
POST /api/v2/gconfig {"name": "${grp_config_name}", "node_id": ${node_id}, "interval": 1000}
|
||||
[Arguments] ${node_id} ${grp_config_name} ${interval}
|
||||
POST /api/v2/gconfig {"name": "${grp_config_name}", "node_id": ${node_id}, "interval": ${interval}}
|
||||
${res} = Object response body
|
||||
|
||||
Integer response status 200
|
||||
Integer response body error ${ERR_SUCCESS}
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Get Group Config
|
||||
[Arguments] ${node_id}
|
||||
GET /api/v2/gconfig?node_id=${node_id}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Update Group Config
|
||||
[Arguments] ${node_id} ${grp_config_name} ${interval}
|
||||
PUT /api/v2/gconfig {"node_id": ${node_id}, "name": "${grp_config_name}", "interval": ${interval}}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Del Group Config
|
||||
[Arguments] ${node_id} ${grp_config_name}
|
||||
[Arguments] ${node_id} ${grp_config_name}
|
||||
DELETE /api/v2/gconfig {"node_id": ${node_id}, "name": "${grp_config_name}"}
|
||||
${res} = Object response body
|
||||
|
||||
DELETE /api/v2/gconfig {"node_id": ${node_id}, "name": "${grp_config_name}"}
|
||||
Integer response status 200
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Subscribe Group
|
||||
[Arguments] ${driver_node_id} ${app_node_id} ${group_config_name}
|
||||
[Arguments] ${driver_node_id} ${app_node_id} ${group_config_name}
|
||||
POST /api/v2/subscribe {"src_node_id": ${driver_node_id}, "dst_node_id": ${app_node_id}, "name": "${group_config_name}"}
|
||||
${res} = Object response body
|
||||
|
||||
POST /api/v2/subscribe {"src_node_id": ${driver_node_id}, "dst_node_id": ${app_node_id}, "name": "${group_config_name}"}
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Integer response status 200
|
||||
Integer response body error ${ERR_SUCCESS}
|
||||
Get Subscribe Group
|
||||
[Arguments] ${node_id}
|
||||
GET /api/v2/subscribe?node_id=${node_id}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Unsubscribe Group
|
||||
[Arguments] ${driver_node_id} ${app_node_id} ${group_config_name}
|
||||
DELETE /api/v2/subscribe {"src_node_id": ${driver_node_id}, "dst_node_id": ${app_node_id}, "name": "${group_config_name}"}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Add Tags
|
||||
[Arguments] ${node_id} ${group} ${tags}
|
||||
[Arguments] ${node_id} ${group} ${tags}
|
||||
POST /api/v2/tags {"node_id": ${node_id}, "group_config_name": "${group}", "tags": [${tags}]}
|
||||
${res} = Object response body
|
||||
|
||||
POST /api/v2/tags {"node_id": ${node_id}, "group_config_name": "${group}", "tags": [${tags}]}
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Integer response status 200
|
||||
Add Tag And Return ID
|
||||
[Arguments] ${node_id} ${group} ${tag}
|
||||
${res} = Add Tags ${node_id} ${group} ${tag}
|
||||
Check Response Status ${res} 200
|
||||
Check Error Code ${res} ${ERR_SUCCESS}
|
||||
${tmp} = evaluate json.loads('''${tag}''') json
|
||||
|
||||
Run Keyword And Return Get Tag ID ${node_id} ${group} ${tmp}[name]
|
||||
|
||||
Get Tags
|
||||
[Arguments] ${node_id} ${group}
|
||||
GET /api/v2/tags?node_id=${node_id}&group_config_name=${group}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Update Tags
|
||||
[Arguments] ${node_id} ${group} ${tags}
|
||||
Put /api/v2/tags {"node_id": ${node_id}, "group_config_name": "${group}", "tags": [${tags}]}
|
||||
${res} = Object response body
|
||||
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Del Tags
|
||||
[Arguments] ${node_id} ${group} ${ids}
|
||||
[Arguments] ${node_id} ${group} ${ids}
|
||||
DELETE /api/v2/tags {"node_id": ${node_id}, "group_config_name": "${group}", "ids": [${ids}]}
|
||||
${res} = Object response body
|
||||
|
||||
DELETE /api/v2/tags {"node_id": ${node_id}, "group_config_name": "${group}", "ids": [${ids}]}
|
||||
|
||||
Integer response status 200
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Get Tag ID
|
||||
[Arguments] ${node_id} ${group} ${tag_name}
|
||||
[Arguments] ${node_id} ${group} ${tag_name}
|
||||
${res} = Get Tags ${node_id} ${group}
|
||||
Check Response Status ${res} 200
|
||||
|
||||
GET /api/v2/tags?node_id=${node_id}&group_config_name=${group}
|
||||
${id} = Tag Find By Name ${res}[tags] ${tag_name}
|
||||
Should Not Be Equal As Integers ${id} 0
|
||||
|
||||
Integer response status 200
|
||||
|
||||
${result} = To Array $.tags
|
||||
|
||||
${id} = Tag Find By Name ${result} ${tag_name}
|
||||
[Return] ${id}
|
||||
[Return] ${id}
|
||||
|
||||
Read Tags
|
||||
[Arguments] ${node_id} ${group}
|
||||
[Arguments] ${node_id} ${group}
|
||||
POST /api/v2/read {"node_id": ${node_id}, "group_config_name": "${group}"}
|
||||
${res} = Object response body
|
||||
|
||||
POST /api/v2/read {"node_id": ${node_id}, "group_config_name": "${group}"}
|
||||
|
||||
Integer response status 200
|
||||
output $
|
||||
[Return] $
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
Write Tags
|
||||
[Arguments] ${node_id} ${group} ${tags}
|
||||
[Arguments] ${node_id} ${group} ${tags}
|
||||
POST /api/v2/write {"node_id": ${node_id}, "group_config_name": "${group}", "tags":[${tags}]}
|
||||
${res} = Object response body
|
||||
|
||||
POST /api/v2/write {"node_id": ${node_id}, "group_config_name": "${group}", "tags":[${tags}]}
|
||||
|
||||
Integer response status 200
|
||||
|
||||
Compare Tag Value As Int
|
||||
[Arguments] ${tags} ${id} ${value}
|
||||
|
||||
${val} = To Array ${tags}
|
||||
${ret} = Compare Tag Value Int ${val} ${id} ${value}
|
||||
|
||||
should be equal as integers ${ret} 0
|
||||
|
||||
Compare Tag Value As Float
|
||||
[Arguments] ${tags} ${id} ${value}
|
||||
|
||||
${val} = To Array ${tags}
|
||||
${ret} = Compare Tag Value Float ${val} ${id} ${value}
|
||||
|
||||
should be equal as integers ${ret} 0
|
||||
|
||||
Compare Tag Value As String
|
||||
[Arguments] ${tags} ${id} ${value}
|
||||
|
||||
${val} = To Array ${tags}
|
||||
${ret} = Compare Tag Value String ${val} ${id} ${value}
|
||||
|
||||
should be equal as integers ${ret} 0
|
||||
[RETURN] ${res}[0]
|
||||
|
||||
@@ -71,3 +71,31 @@ To Array
|
||||
Neuron Ready
|
||||
Start Neuron
|
||||
Sleep 3
|
||||
|
||||
Compare Tag Value As Bool
|
||||
[Arguments] ${tags} ${id} ${value}
|
||||
|
||||
${ret} = Compare Tag Value Bool ${tags} ${id} ${value}
|
||||
|
||||
Should Be Equal As Integers ${ret} 0
|
||||
|
||||
Compare Tag Value As Int
|
||||
[Arguments] ${tags} ${id} ${value}
|
||||
|
||||
${ret} = Compare Tag Value Int ${tags} ${id} ${value}
|
||||
|
||||
Should Be Equal As Integers ${ret} 0
|
||||
|
||||
Compare Tag Value As Float
|
||||
[Arguments] ${tags} ${id} ${value}
|
||||
|
||||
${ret} = Compare Tag Value Float ${tags} ${id} ${value}
|
||||
|
||||
Should Be Equal As Integers ${ret} 0
|
||||
|
||||
Compare Tag Value As String
|
||||
[Arguments] ${tags} ${id} ${value}
|
||||
|
||||
${ret} = Compare Tag Value String ${tags} ${id} ${value}
|
||||
|
||||
Should Be Equal As Integers ${ret} 0
|
||||
|
||||
Reference in New Issue
Block a user