Initial project import
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import importlib.util
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
MODULE = Path(__file__).parents[2] / "plugins" / "1c" / "observer" / "observer_server.py"
|
||||
SPEC = importlib.util.spec_from_file_location("adapter_observer", MODULE)
|
||||
assert SPEC and SPEC.loader
|
||||
observer = importlib.util.module_from_spec(SPEC)
|
||||
SPEC.loader.exec_module(observer)
|
||||
|
||||
|
||||
def test_summary_separates_expected_rejection_and_exception() -> None:
|
||||
events = [
|
||||
{"event": "adapter_rpc", "time": "2026-08-07T10:00:00Z", "request_id": "a", "method": "metadata.form.decode", "request": {"base_id": "upo_test", "ref": "Document.X"}, "status": "ok", "duration_ms": 100},
|
||||
{"event": "adapter_rpc", "time": "2026-08-07T10:01:00Z", "request_id": "b", "method": "metadata.form.decode", "request": {"base_id": "upo_test"}, "status": "partial", "error": "time_budget_exhausted", "duration_ms": 6000},
|
||||
{"event": "adapter_rpc", "time": "2026-08-07T10:02:00Z", "request_id": "c", "method": "modules.read", "request": {"base_id": "upo_test"}, "status": "exception", "error": "request_exception", "duration_ms": 10},
|
||||
{"event": "adapter_rpc", "time": "2026-08-07T10:03:00Z", "request_id": "d", "method": "adapter.job.get", "request": {"base_id": "upo_test"}, "status": "running", "duration_ms": 1},
|
||||
]
|
||||
result = observer.build_summary(events, 0)
|
||||
assert result["events"] == 4
|
||||
assert result["exceptions"] == 1
|
||||
assert result["p95_ms"] == 6000
|
||||
assert any(item["error"] == "time_budget_exhausted" for item in result["findings"])
|
||||
assert not any(item["status"] == "running" for item in result["findings"])
|
||||
assert "BSL" not in json.dumps(observer.event_view(events[0]), ensure_ascii=False)
|
||||
|
||||
|
||||
def test_correlations_keep_mcp_request_that_did_not_reach_rest() -> None:
|
||||
rest = [{"request_id": "same", "method": "modules.read", "status": "ok", "duration_ms": 20}]
|
||||
mcp = [{"request_id": "same", "method": "modules.read", "status": "ok", "duration_ms": 30}, {"request_id": "lost", "method": "modules.read", "status": "exception", "error": "adapter_unavailable"}]
|
||||
result = observer.correlations(rest, mcp)
|
||||
assert result[0]["correlation_status"] == "not_reached_rest"
|
||||
assert result[1]["correlation_status"] == "matched"
|
||||
Reference in New Issue
Block a user