Добавил дочерние trace_ids
This commit is contained in:
@@ -52,6 +52,7 @@ def test_trace_endpoint_returns_text_with_default_levels() -> None:
|
||||
return TraceLogView(
|
||||
trace_id="trace-1",
|
||||
parent_id="root-trace",
|
||||
child_ids=("child-1", "child-2"),
|
||||
records=(
|
||||
_trace_record(row_id=1, level="ERROR", message="first error"),
|
||||
_trace_record(row_id=2, level="WARNING", message="second warning"),
|
||||
@@ -68,6 +69,9 @@ def test_trace_endpoint_returns_text_with_default_levels() -> None:
|
||||
assert response.text == (
|
||||
"trace_id: trace-1\n"
|
||||
"parent_id: root-trace\n"
|
||||
"child_ids:\n"
|
||||
" - child-1\n"
|
||||
" - child-2\n"
|
||||
"--------------------------------------------------\n"
|
||||
"first error\n"
|
||||
"second warning"
|
||||
@@ -80,6 +84,7 @@ def test_trace_endpoint_appends_attrs_json_in_text_mode() -> None:
|
||||
return TraceLogView(
|
||||
trace_id="trace-1",
|
||||
parent_id=None,
|
||||
child_ids=(),
|
||||
records=(
|
||||
_trace_record(row_id=1, level="ERROR", message="failure", attrs_json={"attempt": 2, "source": "crm"}),
|
||||
),
|
||||
@@ -95,6 +100,7 @@ def test_trace_endpoint_appends_attrs_json_in_text_mode() -> None:
|
||||
assert response.text == (
|
||||
"trace_id: trace-1\n"
|
||||
"parent_id: \n"
|
||||
"child_ids:\n"
|
||||
"--------------------------------------------------\n"
|
||||
'failure, {"attempt":2,"source":"crm"}'
|
||||
)
|
||||
@@ -105,6 +111,7 @@ def test_trace_endpoint_returns_json_payload() -> None:
|
||||
return TraceLogView(
|
||||
trace_id="trace-1",
|
||||
parent_id="parent-1",
|
||||
child_ids=("child-1",),
|
||||
records=(
|
||||
_trace_record(row_id=3, level="INFO", message="done", attrs_json={"batch": 7}),
|
||||
),
|
||||
@@ -120,6 +127,7 @@ def test_trace_endpoint_returns_json_payload() -> None:
|
||||
assert response.json() == {
|
||||
"trace_id": "trace-1",
|
||||
"parent_id": "parent-1",
|
||||
"child_ids": ["child-1"],
|
||||
"messages": [
|
||||
{
|
||||
"id": 3,
|
||||
@@ -150,7 +158,12 @@ def test_trace_endpoint_validates_query_params() -> None:
|
||||
|
||||
|
||||
def test_runtime_trace_logs_uses_configured_reader(monkeypatch) -> None:
|
||||
expected = TraceLogView(trace_id="trace-1", parent_id="root", records=(_trace_record(row_id=1, level="ERROR", message="boom"),))
|
||||
expected = TraceLogView(
|
||||
trace_id="trace-1",
|
||||
parent_id="root",
|
||||
child_ids=("child-1",),
|
||||
records=(_trace_record(row_id=1, level="ERROR", message="boom"),),
|
||||
)
|
||||
|
||||
class StubReader:
|
||||
def read_trace(self, trace_id: str, levels: tuple[str, ...]) -> TraceLogView | None:
|
||||
@@ -170,14 +183,18 @@ def test_mysql_trace_log_reader_maps_db_rows() -> None:
|
||||
class FakeCursor:
|
||||
def __init__(self) -> None:
|
||||
self.executed: list[tuple[str, tuple[object, ...]]] = []
|
||||
self._current_query = ""
|
||||
|
||||
def execute(self, query: str, params: tuple[object, ...]) -> None:
|
||||
self.executed.append((query, params))
|
||||
self._current_query = query
|
||||
|
||||
def fetchone(self) -> dict[str, object] | None:
|
||||
return {"parent_id": "root-77"}
|
||||
|
||||
def fetchall(self) -> list[dict[str, object]]:
|
||||
if "WHERE parent_id = %s" in self._current_query:
|
||||
return [{"trace_id": "child-1"}, {"trace_id": "child-2"}]
|
||||
return [
|
||||
{
|
||||
"id": 8,
|
||||
@@ -225,6 +242,7 @@ def test_mysql_trace_log_reader_maps_db_rows() -> None:
|
||||
assert view == TraceLogView(
|
||||
trace_id="trace-1",
|
||||
parent_id="root-77",
|
||||
child_ids=("child-1", "child-2"),
|
||||
records=(
|
||||
TraceLogRecord(
|
||||
id=8,
|
||||
@@ -238,5 +256,6 @@ def test_mysql_trace_log_reader_maps_db_rows() -> None:
|
||||
),
|
||||
),
|
||||
)
|
||||
assert len(factory.cursor.executed) == 2
|
||||
assert factory.cursor.executed[1][1] == ("trace-1", "ERROR", "WARNING")
|
||||
assert len(factory.cursor.executed) == 3
|
||||
assert factory.cursor.executed[1][1] == ("trace-1",)
|
||||
assert factory.cursor.executed[2][1] == ("trace-1", "ERROR", "WARNING")
|
||||
|
||||
Reference in New Issue
Block a user