27 lines
752 B
Python
27 lines
752 B
Python
import pytest
|
|
from great_ai import GreatAI, log_metric
|
|
from great_ai.tracing import TracingContext
|
|
|
|
|
|
@pytest.mark.parametrize("fail", [False, True])
|
|
def test_nested_predictions_restore_outer_trace(
|
|
isolated_context: None, fail: bool
|
|
) -> None:
|
|
@GreatAI.create
|
|
def inner(value: int) -> int:
|
|
if fail:
|
|
raise ValueError("inner failed")
|
|
return value
|
|
|
|
@GreatAI.create
|
|
def outer(value: int) -> int:
|
|
try:
|
|
inner(value)
|
|
except ValueError:
|
|
pass
|
|
log_metric("after_inner", 7, disable_logging=True)
|
|
return value
|
|
|
|
trace = outer(1)
|
|
assert trace.logged_values["metric:outer:after_inner"] == 7
|
|
assert TracingContext.get_current_tracing_context() is None
|