Files
yakpanel-core/mod/test/docker/routetestModTest.py
2026-04-07 02:04:22 +05:30

93 lines
3.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# coding: utf-8
# -------------------------------------------------------------------
# yakpanel
# -------------------------------------------------------------------
# Copyright (c) 2015-2099 yakpanel(http://www.yakpanel.com) All rights reserved.
# -------------------------------------------------------------------
# Author: wzz <wzz@yakpanel.com>
# -------------------------------------------------------------------
# ------------------------------
# Docker模型测试模块 - 容器模型
# ------------------------------
import sys
import unittest
if "/www/server/panel" not in sys.path:
sys.path.insert(0, '/www/server/panel')
from mod.project.docker.routetestMod import main as routetest_main
routetest = routetest_main()
#
class TestContainerModel(unittest.TestCase):
"""
创建测试用例
"""
def test_returnResult(self):
"""
测试模型测试方法检测返回结果是否为json格式数据
@return:
"""
result = routetest.returnResult({'data': {}})
self.assertIsInstance(result, dict)
self.assertIn('status', result)
self.assertIn('msg', result)
self.assertIn('data', result)
self.assertIn('code', result)
self.assertIn('timestamp', result)
def test_wsRequest(self):
"""
使用ws长链请求ws://127.0.0.1:8888/ws_mod
并发送{"mod_name":"docker","sub_mod_name":"routetest","def_name":"wsRequest","ws_callback":"111"}检测返回结果是否为True
备注请将__init__.py中ws模型路由的comReturn和csrf检查注释掉再测试
@param get:
{"mod_name":"docker","sub_mod_name":"routetest","def_name":"wsRequest","ws_callback":"111"}
{"mod_name":"模型名称","sub_mod_name":"子模块名称","def_name":"函数名称","ws_callback":"ws必传参数传111",其他参数接后面}
@return:
"""
import json
import time
from websocket import create_connection
ws = create_connection("ws://127.0.0.1:8888/ws_mod")
print("连接状态:", ws.connected)
params = {"mod_name": "docker", "sub_mod_name": "routetest", "def_name": "wsRequest", "ws_callback": "111"}
ws.send(json.dumps(params))
while True:
result = ws.recv()
print("接收到结果:", result.strip())
try:
result_data = json.loads(result)
if "result" in result_data and "callback" in result_data:
if result_data["result"] == True and result_data["callback"] == "111":
print("websocket测试成功")
break
except Exception as e:
pass
# 等待一段时间再继续接收消息
time.sleep(0.1)
ws.close()
self.assertIn('result', result)
self.assertIn('callback', result)
if __name__ == '__main__':
# unittest.main()
# 创建测试套件
suite = unittest.TestSuite()
suite.addTest(TestContainerModel('test_returnResult'))
suite.addTest(TestContainerModel('test_wsRequest'))
# 创建测试运行器
runner = unittest.TextTestRunner()
runner.run(suite)