77 lines
2.8 KiB
Python
77 lines
2.8 KiB
Python
"""验证 middleware/ 统一导入结构。
|
|
|
|
合并策略:
|
|
- app/middleware/ 作为统一目录
|
|
- monitoring/metrics.py (Prometheus指标定义) -> middleware/prometheus_metrics.py
|
|
- monitoring/middleware.py (MonitoringMiddleware) -> 合并到 middleware/metrics.py
|
|
- monitoring/agent_hooks.py -> middleware/agent_hooks.py
|
|
- monitoring/llm_metrics.py -> middleware/llm_metrics.py
|
|
- monitoring/ 目录已删除
|
|
"""
|
|
import pytest
|
|
|
|
|
|
class TestUnifiedMiddlewareImports:
|
|
"""测试统一后的 app.middleware 导入路径是否可用。"""
|
|
|
|
def test_import_logging_filter(self):
|
|
from app.middleware.logging_filter import APIKeyFilter
|
|
assert APIKeyFilter is not None
|
|
|
|
def test_import_logging_middleware(self):
|
|
from app.middleware.logging_middleware import RequestLoggingMiddleware
|
|
assert RequestLoggingMiddleware is not None
|
|
|
|
def test_import_rate_limit(self):
|
|
from app.middleware.rate_limit import RateLimitMiddleware
|
|
assert RateLimitMiddleware is not None
|
|
|
|
def test_import_request_id(self):
|
|
from app.middleware.request_id import RequestIdMiddleware, REQUEST_ID_HEADER
|
|
assert RequestIdMiddleware is not None
|
|
assert REQUEST_ID_HEADER == "X-Request-ID"
|
|
|
|
def test_import_metrics_middleware(self):
|
|
from app.middleware.metrics import MetricsMiddleware
|
|
assert MetricsMiddleware is not None
|
|
|
|
def test_import_monitoring_middleware_from_metrics(self):
|
|
from app.middleware.metrics import MonitoringMiddleware
|
|
assert MonitoringMiddleware is not None
|
|
|
|
def test_import_prometheus_metrics(self):
|
|
from app.middleware.prometheus_metrics import (
|
|
API_REQUESTS_TOTAL,
|
|
API_REQUEST_DURATION_SECONDS,
|
|
API_REQUESTS_IN_PROGRESS,
|
|
AGENT_EXECUTIONS_TOTAL,
|
|
AGENT_EXECUTION_DURATION_SECONDS,
|
|
AGENT_RUNNING_TASKS,
|
|
LLM_REQUESTS_TOTAL,
|
|
LLM_REQUEST_DURATION_SECONDS,
|
|
LLM_TOKENS_TOTAL,
|
|
LLM_COST_ESTIMATED,
|
|
BRAND_COUNT,
|
|
QUERY_COUNT_TOTAL,
|
|
CONTENT_GENERATED_TOTAL,
|
|
CITATION_DETECTED_TOTAL,
|
|
SERVICE_INFO,
|
|
)
|
|
assert API_REQUESTS_TOTAL is not None
|
|
assert SERVICE_INFO is not None
|
|
|
|
def test_import_agent_hooks(self):
|
|
from app.middleware.agent_hooks import agent_execution_context, record_agent_execution
|
|
assert agent_execution_context is not None
|
|
assert record_agent_execution is not None
|
|
|
|
def test_import_llm_metrics(self):
|
|
from app.middleware.llm_metrics import get_llm_metrics, LLMMetricsWrapper
|
|
assert get_llm_metrics is not None
|
|
assert LLMMetricsWrapper is not None
|
|
|
|
def test_import_excluded_paths(self):
|
|
from app.middleware.metrics import _SKIP_PATHS
|
|
assert isinstance(_SKIP_PATHS, set)
|
|
assert "/health" in _SKIP_PATHS
|