Files
awoooi/apps/api/tests/test_signoz_client_logs.py
Your Name 5cb10a6d2d
All checks were successful
Code Review / ai-code-review (push) Successful in 11s
CD Pipeline / tests (push) Successful in 2m29s
CD Pipeline / build-and-deploy (push) Successful in 4m15s
CD Pipeline / post-deploy-checks (push) Successful in 1m41s
fix(mcp): enrich host log evidence params
2026-05-18 12:23:39 +08:00

62 lines
1.8 KiB
Python

from __future__ import annotations
import pytest
from src.services.signoz_client import SignOzClient
@pytest.mark.asyncio
async def test_get_logs_uses_live_signoz_v2_table(monkeypatch) -> None:
client = SignOzClient()
queries: list[str] = []
async def fake_query(query: str) -> list[dict]:
queries.append(query)
return [
{
"timestamp": 1,
"severity_text": "ERROR",
"body": "boom",
"resources": {"service.name": "ollama"},
"attributes": {"container.name": "ollama"},
"trace_id": "trace-1",
"span_id": "span-1",
}
]
monkeypatch.setattr(client, "_query_clickhouse", fake_query)
logs = await client.get_logs(
service_name="ollama",
severity="ERROR",
search_text="HostErrorLogFlood",
time_window_minutes=5,
limit=3,
)
assert logs[0]["service"] == "ollama"
assert "FROM signoz_logs.distributed_logs_v2" in queries[0]
assert "resources_string['service.name'] = 'ollama'" in queries[0]
assert "attributes_string AS attributes" in queries[0]
@pytest.mark.asyncio
async def test_error_logs_summary_uses_live_signoz_v2_table(monkeypatch) -> None:
client = SignOzClient()
queries: list[str] = []
async def fake_query(query: str) -> list[dict]:
queries.append(query)
return [{"severity_text": "ERROR", "count": 2, "sample_message": "boom"}]
monkeypatch.setattr(client, "_query_clickhouse", fake_query)
summary = await client.get_error_logs_summary(
service_name="ollama",
time_window_minutes=5,
)
assert summary["total_errors"] == 2
assert "FROM signoz_logs.distributed_logs_v2" in queries[0]
assert "resources_string['service.name'] = 'ollama'" in queries[0]