完成渠道模块的单元测试目录搭建,新增多个领域模型、端口、中间件、事件、服务以及基础设施层的单元测试文件,同时补充了conftest.py的环境变量配置,完善测试基础环境。
63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from yuxi.channel.container import StartupTracer
|
|
|
|
|
|
class TestStartupTracer:
|
|
def test_init(self):
|
|
tracer = StartupTracer()
|
|
assert tracer._events == []
|
|
assert tracer._start_time == 0.0
|
|
assert tracer._current_phase == ""
|
|
|
|
def test_begin(self):
|
|
tracer = StartupTracer()
|
|
tracer.begin("config")
|
|
assert tracer._current_phase == "config"
|
|
assert tracer._start_time > 0
|
|
|
|
def test_end(self):
|
|
tracer = StartupTracer()
|
|
tracer.begin("config")
|
|
tracer.end()
|
|
assert len(tracer._events) == 1
|
|
assert tracer._events[0]["name"] == "config"
|
|
assert tracer._events[0]["status"] == "ok"
|
|
assert tracer._events[0]["duration_ms"] >= 0
|
|
|
|
def test_mark(self):
|
|
tracer = StartupTracer()
|
|
tracer.mark("ws_feishu", "registered", duration_ms=0.5)
|
|
assert len(tracer._events) == 1
|
|
assert tracer._events[0]["name"] == "ws_feishu"
|
|
assert tracer._events[0]["status"] == "registered"
|
|
assert tracer._events[0]["duration_ms"] == 0.5
|
|
|
|
def test_total_ms(self):
|
|
tracer = StartupTracer()
|
|
tracer.mark("a", "ok", duration_ms=10.0)
|
|
tracer.mark("b", "ok", duration_ms=20.5)
|
|
assert tracer.total_ms == 30.5
|
|
|
|
def test_to_dict(self):
|
|
tracer = StartupTracer()
|
|
tracer.mark("a", "ok", duration_ms=5.0)
|
|
result = tracer.to_dict()
|
|
assert result == [{"name": "a", "status": "ok", "duration_ms": 5.0}]
|
|
|
|
def test_multiple_phases(self):
|
|
tracer = StartupTracer()
|
|
tracer.begin("config")
|
|
tracer.end()
|
|
tracer.begin("redis")
|
|
tracer.end()
|
|
tracer.begin("infra")
|
|
tracer.end()
|
|
assert len(tracer._events) == 3
|
|
assert tracer._events[0]["name"] == "config"
|
|
assert tracer._events[1]["name"] == "redis"
|
|
assert tracer._events[2]["name"] == "infra"
|
|
assert tracer.total_ms == sum(e["duration_ms"] for e in tracer._events)
|