Protect trace fields from logged input collisions
This commit is contained in:
parent
1bfdf05081
commit
1d088669d1
1 changed files with 29 additions and 0 deletions
|
|
@ -1,3 +1,4 @@
|
|||
from datetime import datetime
|
||||
from typing import Any, Dict
|
||||
from unittest.mock import patch
|
||||
|
||||
|
|
@ -7,6 +8,32 @@ from pymongo import MongoClient
|
|||
from pymongo.synchronous.collection import Collection
|
||||
|
||||
|
||||
def test_flattening_preserves_reserved_trace_fields() -> None:
|
||||
trace = Trace(
|
||||
trace_id="actual-id",
|
||||
created=datetime(2026, 1, 1).isoformat(),
|
||||
original_execution_time_ms=0,
|
||||
models=[],
|
||||
tags=["online"],
|
||||
output="prediction",
|
||||
logged_values={
|
||||
"trace_id": "input-id",
|
||||
"created": "input-created",
|
||||
"output": 123,
|
||||
"tags": ["input"],
|
||||
"models": "input",
|
||||
"_id": "input-id",
|
||||
"feature": 5,
|
||||
},
|
||||
)
|
||||
flat = trace.to_flat_dict()
|
||||
for name, value in trace.model_dump().items():
|
||||
assert flat[name] == value
|
||||
assert "_id" not in flat
|
||||
assert flat["feature"] == 5
|
||||
assert Trace.model_validate(flat) == trace
|
||||
|
||||
|
||||
def test_mongo_update_uses_valid_replacement() -> None:
|
||||
trace = Trace(
|
||||
trace_id="id",
|
||||
|
|
|
|||
Loading…
Reference in a new issue