test_span_json_encoder.py•1.44 kB
import json
from datetime import datetime, timezone
import numpy as np
from phoenix.trace.schemas import Span, SpanContext, SpanKind, SpanStatusCode
from phoenix.trace.span_json_encoder import span_to_json
def test_span_to_json() -> None:
start_time = datetime.now(timezone.utc)
end_time = datetime.now(timezone.utc)
span = Span(
name="test",
context=SpanContext(
trace_id="1234",
span_id="5678",
),
span_kind=SpanKind.UNKNOWN,
parent_id=None,
start_time=start_time,
end_time=end_time,
status_code=SpanStatusCode.ERROR,
status_message="error",
attributes={
"key": "value",
"integers": np.array([1, 2, 3]),
"floats": np.array([0.1, 0.2, 0.3]),
},
events=[],
conversation=None,
)
assert json.loads(span_to_json(span)) == {
"name": "test",
"context": {
"trace_id": "1234",
"span_id": "5678",
},
"span_kind": "UNKNOWN",
"parent_id": None,
"start_time": start_time.isoformat(),
"end_time": end_time.isoformat(),
"status_code": "ERROR",
"status_message": "error",
"attributes": {
"key": "value",
"integers": [1, 2, 3],
"floats": [0.1, 0.2, 0.3],
},
"events": [],
"conversation": None,
}