Commit 94cac64a authored by zhanhuasheng's avatar zhanhuasheng

新增会话状态的用例

parent 2a99051d
import pytest
from Utils import yaml_handler
from Utils import req_handler
from TestData.inbox.ticketStatus_test_data import ticketStatusData
class TestLivechat:
yaml_path = r'inbox\ticketStatus.yaml'
yaml_data = yaml_handler.yaml_handler.get_case(yaml_path)
@pytest.mark.parametrize('case',yaml_data)
def test_ticketStatus(self,case):
print(case)
req_handler.ReqHandler.send_requests(case=case,var_class=ticketStatusData)
from Utils.global_variate import Global
class ticketStatusData(Global):
pass
\ No newline at end of file
from Utils.sql_handler import test_env_conn
from TestData.inbox.ticketStatus_test_data import ticketStatusData
all_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1'
your_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `allocation_uid` = {ticketStatusData.userId}'
unread_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `read_status` = 1'
unassigned_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `allocation_uid` = 0'
all_ticket_num = len(test_env_conn.select_many_value(sql=all_ticket_select_sql))
your_ticket_num = len(test_env_conn.select_many_value(sql=your_ticket_select_sql))
unread_ticket_num = test_env_conn.select_many_value(sql=unread_ticket_select_sql)
unassigned_ticket_num = test_env_conn.select_many_value(sql=unassigned_ticket_select_sql)
setattr(ticketStatusData,'all_ticket_num',all_ticket_num)
setattr(ticketStatusData,'your_ticket_num',your_ticket_num)
setattr(ticketStatusData,'your_ticket_num_add',your_ticket_num+1)
setattr(ticketStatusData,'unread_ticket_num',len(unread_ticket_num))
setattr(ticketStatusData,'unread_ticket_num_add',len(unread_ticket_num)+1)
setattr(ticketStatusData,'unassigned_ticket_num',len(unassigned_ticket_num))
setattr(ticketStatusData,'unassigned_ticket_num_minus',len(unassigned_ticket_num)-1)
setattr(ticketStatusData,'unassigned_ticket_id',unassigned_ticket_num[0]['room_id'])
read_ticket_select_sql = f'select * from `im_room` where `cate_id` = {ticketStatusData.brandId} and `status` = 1 and `read_status` = 2 and `room_platform` = "willdesk"'
read_ticket_select_result = test_env_conn.select_one_value(sql=read_ticket_select_sql)
setattr(ticketStatusData,'read_ticket_id',read_ticket_select_result["room_id"])
msg_select_sql = f'select * from `im_record` where `room_id` = {read_ticket_select_result["room_id"]} order by send_time limit 1'
msg_select_result = test_env_conn.select_one_value(sql=msg_select_sql)
setattr(ticketStatusData,'unread_msg_id',msg_select_result['msg_id'])
setattr(ticketStatusData,'unread_send_time',msg_select_result['send_time'])
api1:
title: 检查打开的会话数量
url: /api/v1/chat/local/count
method: post
data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"keyword":"","countType":["all","unread","mention","assigned","unassigned","chatbot","spam"],"v":"${v}"}
before_sql: inbox/ticketStatus_selectStatus.py
expected:
- eq: {"$.code" : 0}
- eq: {"$.data.list.all.openCount" : "${all_ticket_num}"}
- eq: {"$.data.list.assigned.openCount" : "${your_ticket_num}"}
- eq: {"$.data.list.unread.openCount" : "${unread_ticket_num}"}
- eq: {"$.data.list.unassigned.openCount" : "${unassigned_ticket_num}"}
api2:
title: 分配一个会话给自己
url: /api/v1/chatRoom/operate
method: post
data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${unassigned_ticket_id}","clientId":"${willdesk_clientId}","event":"allocat","username":"${name}","isMark":false,"allocationUid":"${userId}","v":"${v}"}
expected:
- eq: {"$.code" : 0}
api3:
title: 检查分配是否成功
url: /api/v1/chat/local/count
method: post
data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"keyword":"","countType":["all","unread","mention","assigned","unassigned","chatbot","spam"],"v":"${v}"}
expected:
- eq: {"$.code" : 0}
- like: {"$.data.list.assigned.openCount" : "${your_ticket_num_add}"}
- like: {"$.data.list.unassigned.openCount": "${unassigned_ticket_num_minus}" }
api4:
title: 再次设为未分配
url: /api/v1/chatRoom/operate
method: post
data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${unassigned_ticket_id}","clientId":"${willdesk_clientId}","event":"allocat","username":"${name}","isMark":false,"allocationUid":"0","v":"${v}"}
expected:
- eq: {"$.code" : 0}
api5:
title: 恢复分配数据
url: /api/v1/chat/local/count
method: post
data: {"uid":"${userId}","uType":2,"platform":1,"siteIds":["${shopId}"],"keyword":"","countType":["all","unread","mention","assigned","unassigned","chatbot","spam"],"v":"${v}"}
expected:
- eq: {"$.code" : 0}
- like: {"$.data.list.assigned.openCount" : "${your_ticket_num}"}
- like: {"$.data.list.unassigned.openCount": "${unassigned_ticket_num}" }
api6:
title: 将会话标为已读
url: /api/v1/chatRoom/operate
method: post
data: {"uid":"${userId}","uType":2,"platform":1,"roomId":"${read_ticket_id}","clientId":"${willdesk_clientId}","event":"unread","username":"${name}","isMark":false,"allocationUid":"${userId}","v":"${v}"}
expected:
- eq: {"$.code" : 0}
api7:
title: 检查设置未读是否成功
url: /api/v1/chat/local/count
method: post
data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": [ "${shopId}" ],"keyword": "","countType": [ "all","unread","mention","assigned","unassigned","chatbot","spam" ],"v": "${v}" }
expected:
- eq: { "$.code": 0 }
- like: { "$.data.list.unread.openCount": "${unread_ticket_num_add}" }
api8:
title: 读取会话
ws: willdesk
action: readMsg
data:
roomId: "${read_ticket_id}"
msgId: "${unread_msg_id}"
msgTime: "${unread_send_time}"
sleep: 0.5
api9:
title: 检查读取消息是否成功
url: /api/v1/chat/local/count
method: post
data: { "uid": "${userId}","uType": 2,"platform": 1,"siteIds": [ "${shopId}" ],"keyword": "","countType": [ "all","unread","mention","assigned","unassigned","chatbot","spam" ],"v": "${v}" }
expected:
- eq: { "$.code": 0 }
- like: { "$.data.list.unread.openCount": "${unread_ticket_num}" }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment