geo/backend/tests/test_infrastructure/test_middleware_unified.py

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