Skip to content

Commit fc3b3c5

Browse files
committed
chore: test observations
1 parent 05657c6 commit fc3b3c5

1 file changed

Lines changed: 35 additions & 3 deletions

File tree

tests/test_core_sdk.py

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2089,11 +2089,12 @@ def test_context_manager_user_propagation():
20892089
trace = get_api().trace.get(trace_id)
20902090
assert trace.user_id == user_id
20912091

2092-
# Verify child observations were created
2092+
# Verify child observations were created and have user_id
20932093
child_observations = [
20942094
obs
20952095
for obs in trace.observations
20962096
if obs.name in ["child-span", "child-generation"]
2097+
and obs.metadata["attributes"]["user.id"] == user_id
20972098
]
20982099
assert len(child_observations) == 2
20992100

@@ -2125,7 +2126,11 @@ def test_context_manager_session_propagation():
21252126
assert trace.session_id == session_id
21262127

21272128
# Verify nested spans were created
2128-
nested_observations = [obs for obs in trace.observations if "span" in obs.name]
2129+
nested_observations = [
2130+
obs
2131+
for obs in trace.observations
2132+
if "span" in obs.name and obs.metadata["attributes"]["session.id"] == session_id
2133+
]
21292134
assert len(nested_observations) >= 2
21302135

21312136

@@ -2156,6 +2161,21 @@ def test_context_manager_metadata_propagation():
21562161
assert trace.metadata["version"] == "1.2.3"
21572162
assert trace.metadata["feature_flag"] == "enabled"
21582163

2164+
# Verify all observations have the metadata distributed as individual keys
2165+
for obs in trace.observations:
2166+
if obs.name in ["child-span", "child-generation", "parent-span"]:
2167+
# Check that metadata was set on the observation
2168+
assert hasattr(obs, "metadata"), f"Observation {obs.name} missing metadata"
2169+
assert (
2170+
obs.metadata["experiment"] == "A/B"
2171+
), f"Observation {obs.name} missing experiment metadata"
2172+
assert (
2173+
obs.metadata["version"] == "1.2.3"
2174+
), f"Observation {obs.name} missing version metadata"
2175+
assert (
2176+
obs.metadata["feature_flag"] == "enabled"
2177+
), f"Observation {obs.name} missing feature_flag metadata"
2178+
21592179

21602180
def test_context_manager_nested_contexts():
21612181
"""Test nested context managers with overrides and merging."""
@@ -2199,7 +2219,7 @@ def test_context_manager_nested_contexts():
21992219
]
22002220
assert len(child_observations) >= 2
22012221

2202-
# Verify specific child spans exist
2222+
# Verify specific child spans exist and have correct metadata
22032223
outer_child_obs = [obs for obs in trace.observations if obs.name == "outer-child"]
22042224
nested_span_obs = [obs for obs in trace.observations if obs.name == "nested-span"]
22052225

@@ -2230,6 +2250,18 @@ def test_context_manager_baggage_propagation():
22302250
assert trace.metadata["service"] == "api"
22312251
assert trace.metadata["version"] == "v1.0"
22322252

2253+
# Verify all observations have the metadata and session_id
2254+
for obs in trace.observations:
2255+
if obs.name in ["external-call-span", "service-span"]:
2256+
# Check that metadata was set on the observation
2257+
assert hasattr(obs, "metadata"), f"Observation {obs.name} missing metadata"
2258+
assert (
2259+
obs.metadata["service"] == "api"
2260+
), f"Observation {obs.name} missing service metadata"
2261+
assert (
2262+
obs.metadata["version"] == "v1.0"
2263+
), f"Observation {obs.name} missing version metadata"
2264+
22332265

22342266
def test_span_context_managers():
22352267
"""Test context managers called on span instances."""

0 commit comments

Comments
 (0)