fix: map all NodeType values to span kinds in Arize Phoenix tracing (#32059)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Crazywoola <100913391+crazywoola@users.noreply.github.com>
This commit is contained in:
Varun Chawla
2026-03-01 22:54:26 -08:00
committed by GitHub
parent 42a8d962a0
commit 9ddbc1c0fb
2 changed files with 57 additions and 8 deletions

View File

@ -0,0 +1,36 @@
from openinference.semconv.trace import OpenInferenceSpanKindValues
from core.ops.arize_phoenix_trace.arize_phoenix_trace import _NODE_TYPE_TO_SPAN_KIND, _get_node_span_kind
from core.workflow.enums import NodeType
class TestGetNodeSpanKind:
"""Tests for _get_node_span_kind helper."""
def test_all_node_types_are_mapped_correctly(self):
"""Ensure every NodeType enum member is mapped to the correct span kind."""
# Mappings for node types that have a specialised span kind.
special_mappings = {
NodeType.LLM: OpenInferenceSpanKindValues.LLM,
NodeType.KNOWLEDGE_RETRIEVAL: OpenInferenceSpanKindValues.RETRIEVER,
NodeType.TOOL: OpenInferenceSpanKindValues.TOOL,
NodeType.AGENT: OpenInferenceSpanKindValues.AGENT,
}
# Test that every NodeType enum member is mapped to the correct span kind.
# Node types not in `special_mappings` should default to CHAIN.
for node_type in NodeType:
expected_span_kind = special_mappings.get(node_type, OpenInferenceSpanKindValues.CHAIN)
actual_span_kind = _get_node_span_kind(node_type)
assert actual_span_kind == expected_span_kind, (
f"NodeType.{node_type.name} was mapped to {actual_span_kind}, but {expected_span_kind} was expected."
)
def test_unknown_string_defaults_to_chain(self):
"""An unrecognised node type string should still return CHAIN."""
assert _get_node_span_kind("some-future-node-type") == OpenInferenceSpanKindValues.CHAIN
def test_stale_dataset_retrieval_not_in_mapping(self):
"""The old 'dataset_retrieval' string was never a valid NodeType value;
make sure it is not present in the mapping dictionary."""
assert "dataset_retrieval" not in _NODE_TYPE_TO_SPAN_KIND