- 新增 app_metadata 模型、仓储与服务 - 将默认 edge 验证步骤改为由 app_metadata 驱动生成 - 新增 chat_session / chat_message 会话层模型与 chat service - 新增 demo chat API,支持会话创建、消息发送、任务确认 - 新增最小 Web Demo 页面,形成聊天式演示入口 - 增强任务报告,补充 audit_summary 与更细粒度 task_metrics - 增强 edge-agent 执行器:tcp_probe、日志时间范围过滤、进程指标与更灵活健康检查 - 更新 README 与当前进度总结,MVP 进度推进到约 94%
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import socket
|
|
import threading
|
|
|
|
from app.executors.tcp_probe_executor import TcpProbeExecutor
|
|
|
|
|
|
def test_tcp_probe_executor_success() -> None:
|
|
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
server.bind(("127.0.0.1", 0))
|
|
server.listen(1)
|
|
host, port = server.getsockname()
|
|
|
|
def accept_once() -> None:
|
|
conn, _ = server.accept()
|
|
conn.close()
|
|
server.close()
|
|
|
|
thread = threading.Thread(target=accept_once, daemon=True)
|
|
thread.start()
|
|
|
|
success, message, data, evidence = TcpProbeExecutor().execute({"host": host, "port": port, "timeout_ms": 1000})
|
|
thread.join(timeout=1)
|
|
|
|
assert success is True
|
|
assert message == "tcp probe succeeded"
|
|
assert data["connected"] is True
|
|
assert data["latency_ms"] is not None
|
|
assert evidence == {}
|
|
|
|
|
|
def test_tcp_probe_executor_failure() -> None:
|
|
success, message, data, evidence = TcpProbeExecutor().execute({"host": "127.0.0.1", "port": 9, "timeout_ms": 100})
|
|
assert success is False
|
|
assert data["connected"] is False
|
|
assert isinstance(message, str)
|
|
assert evidence == {}
|