|
4 | 4 | import os |
5 | 5 | import pickle |
6 | 6 |
|
| 7 | +import mock |
7 | 8 | import pytest |
8 | 9 |
|
9 | 10 | from ddtrace import tracer as ddtracer |
@@ -2670,69 +2671,24 @@ def test_DD_TRACE_PROPAGATION_STYLE_INJECT_overrides_DD_TRACE_PROPAGATION_STYLE( |
2670 | 2671 | assert result == expected_headers |
2671 | 2672 |
|
2672 | 2673 |
|
2673 | | -def test_llmobs_enabled_injects_parent_id(run_python_code_in_subprocess): |
2674 | | - code = """ |
2675 | | -from ddtrace import tracer |
2676 | | -from ddtrace.ext import SpanTypes |
2677 | | -from ddtrace.llmobs._constants import PROPAGATED_PARENT_ID_KEY |
2678 | | -from ddtrace.propagation.http import HTTPPropagator |
2679 | | -
|
2680 | | -with tracer.trace("LLMObs span", span_type=SpanTypes.LLM) as root_span: |
2681 | | - with tracer.trace("Non-LLMObs span") as child_span: |
2682 | | - headers = {} |
2683 | | - HTTPPropagator.inject(child_span.context, headers) |
2684 | | -
|
2685 | | -assert "{}={}".format(PROPAGATED_PARENT_ID_KEY, root_span.span_id) in headers["x-datadog-tags"] |
2686 | | - """ |
2687 | | - |
2688 | | - env = os.environ.copy() |
2689 | | - env["DD_LLMOBS_ENABLED"] = "1" |
2690 | | - env["DD_TRACE_ENABLED"] = "0" |
2691 | | - stdout, stderr, status, _ = run_python_code_in_subprocess(code=code, env=env) |
2692 | | - assert status == 0, (stdout, stderr) |
2693 | | - assert stderr == b"", (stdout, stderr) |
2694 | | - |
2695 | | - |
2696 | | -def test_llmobs_disabled_does_not_inject_parent_id(run_python_code_in_subprocess): |
2697 | | - code = """ |
2698 | | -from ddtrace import tracer |
2699 | | -from ddtrace.ext import SpanTypes |
2700 | | -from ddtrace.llmobs._constants import PROPAGATED_PARENT_ID_KEY |
2701 | | -from ddtrace.propagation.http import HTTPPropagator |
2702 | | -
|
2703 | | -with tracer.trace("LLMObs span", span_type=SpanTypes.LLM) as root_span: |
2704 | | - with tracer.trace("Non-LLMObs span") as child_span: |
2705 | | - headers = {} |
2706 | | - HTTPPropagator.inject(child_span.context, headers) |
2707 | | -
|
2708 | | -assert "{}".format(PROPAGATED_PARENT_ID_KEY) not in headers["x-datadog-tags"] |
2709 | | - """ |
| 2674 | +def test_llmobs_enabled_injects_llmobs_parent_id(): |
| 2675 | + with override_global_config(dict(_llmobs_enabled=True)): |
| 2676 | + with mock.patch("ddtrace.llmobs._utils._inject_llmobs_parent_id") as mock_llmobs_inject: |
| 2677 | + context = Context(trace_id=1, span_id=2) |
| 2678 | + HTTPPropagator.inject(context, {}) |
| 2679 | + mock_llmobs_inject.assert_called_once_with(context) |
2710 | 2680 |
|
2711 | | - env = os.environ.copy() |
2712 | | - env["DD_LLMOBS_ENABLED"] = "0" |
2713 | | - env["DD_TRACE_ENABLED"] = "0" |
2714 | | - stdout, stderr, status, _ = run_python_code_in_subprocess(code=code, env=env) |
2715 | | - assert status == 0, (stdout, stderr) |
2716 | | - assert stderr == b"", (stdout, stderr) |
2717 | 2681 |
|
| 2682 | +def test_llmobs_disabled_does_not_inject_parent_id(): |
| 2683 | + with override_global_config(dict(_llmobs_enabled=False)): |
| 2684 | + with mock.patch("ddtrace.llmobs._utils._inject_llmobs_parent_id") as mock_llmobs_inject: |
| 2685 | + context = Context(trace_id=1, span_id=2) |
| 2686 | + HTTPPropagator.inject(context, {}) |
| 2687 | + mock_llmobs_inject.assert_not_called() |
2718 | 2688 |
|
2719 | | -def test_llmobs_enabled_does_not_inject_parent_id_if_no_llm_span(run_python_code_in_subprocess): |
2720 | | - code = """ |
2721 | | -from ddtrace import tracer |
2722 | | -from ddtrace.llmobs._constants import PROPAGATED_PARENT_ID_KEY |
2723 | | -from ddtrace.propagation.http import HTTPPropagator |
2724 | 2689 |
|
2725 | | -with tracer.trace("Non-LLMObs span") as root_span: |
2726 | | - with tracer.trace("Non-LLMObs span") as child_span: |
2727 | | - headers = {} |
2728 | | - HTTPPropagator.inject(child_span.context, headers) |
2729 | | -
|
2730 | | -assert f"{PROPAGATED_PARENT_ID_KEY}=undefined" in headers["x-datadog-tags"] |
2731 | | - """ |
2732 | | - |
2733 | | - env = os.environ.copy() |
2734 | | - env["DD_LLMOBS_ENABLED"] = "1" |
2735 | | - env["DD_TRACE_ENABLED"] = "0" |
2736 | | - stdout, stderr, status, _ = run_python_code_in_subprocess(code=code, env=env) |
2737 | | - assert status == 0, (stdout, stderr) |
2738 | | - assert stderr == b"", (stdout, stderr) |
| 2690 | +def test_llmobs_parent_id_not_injected_by_default(): |
| 2691 | + with mock.patch("ddtrace.llmobs._utils._inject_llmobs_parent_id") as mock_llmobs_inject: |
| 2692 | + context = Context(trace_id=1, span_id=2) |
| 2693 | + HTTPPropagator.inject(context, {}) |
| 2694 | + mock_llmobs_inject.assert_not_called() |
0 commit comments