From c5684b64a67985328e61085ee33c5c92007c8d65 Mon Sep 17 00:00:00 2001 From: Sebastian Husch Lee Date: Thu, 17 Apr 2025 09:26:27 +0200 Subject: [PATCH] fix: Fix datadog tracer tests (#9253) * Fix tests * Make tests work in old versions of datadog --- test/tracing/test_datadog.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/test/tracing/test_datadog.py b/test/tracing/test_datadog.py index 46d84e6f3..436ba2682 100644 --- a/test/tracing/test_datadog.py +++ b/test/tracing/test_datadog.py @@ -7,6 +7,7 @@ from typing import List, Dict from ddtrace.trace import Span as ddSpan from ddtrace.trace import Tracer as ddTracer +from ddtrace._trace.processor import SpanAggregator import pytest from _pytest.capture import CaptureFixture from _pytest.monkeypatch import MonkeyPatch @@ -14,10 +15,18 @@ from _pytest.monkeypatch import MonkeyPatch from haystack.tracing.datadog import DatadogTracer +def safe_patch(monkeypatch, target, attr_name, replacement): + if hasattr(target, attr_name): + attr = getattr(target, attr_name) + name = attr.__name__ if callable(attr) and hasattr(attr, "__name__") else attr_name + monkeypatch.setattr(target, name, replacement) + + @pytest.fixture() def datadog_tracer(monkeypatch: MonkeyPatch) -> ddTracer: # For the purpose of the tests we want to use the log writer - monkeypatch.setattr(ddTracer, ddTracer._use_log_writer.__name__, lambda *_: True) + safe_patch(monkeypatch, SpanAggregator, "_use_log_writer", lambda *_: True) + safe_patch(monkeypatch, ddTracer, "_use_log_writer", lambda *_: True) tracer = ddTracer()