From 9d09e01800af6bda86ebd69bdce121061ff38777 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 18 Jun 2025 10:48:17 +0000 Subject: [PATCH] fix: reset telemetry singleton in tests to prevent state persistence on Python 3.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: João --- src/crewai/telemetry/telemetry.py | 6 ++++++ tests/test_optional_dependencies.py | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/crewai/telemetry/telemetry.py b/src/crewai/telemetry/telemetry.py index 7e756cd5b..9a929e6e1 100644 --- a/src/crewai/telemetry/telemetry.py +++ b/src/crewai/telemetry/telemetry.py @@ -107,6 +107,12 @@ class Telemetry: cls._instance._initialized = False return cls._instance + @classmethod + def _reset_instance(cls): + """Reset the singleton instance for testing purposes.""" + with cls._lock: + cls._instance = None + def __init__(self) -> None: if hasattr(self, '_initialized') and self._initialized: return diff --git a/tests/test_optional_dependencies.py b/tests/test_optional_dependencies.py index aafc1fc64..3b57b9f4e 100644 --- a/tests/test_optional_dependencies.py +++ b/tests/test_optional_dependencies.py @@ -95,6 +95,9 @@ class TestOptionalDependencies: def test_opentelemetry_graceful_degradation(self): """Test that telemetry degrades gracefully without opentelemetry.""" + from crewai.telemetry.telemetry import Telemetry + Telemetry._reset_instance() + with patch.dict('sys.modules', {'opentelemetry': None}): with patch('crewai.telemetry.telemetry.OPENTELEMETRY_AVAILABLE', False): from crewai.telemetry.telemetry import Telemetry