From 3348fff123f455a87eeea2521b00e576df4c272e Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 08:05:23 +0000 Subject: [PATCH] Address PR feedback: Add deprecation warning and expand test coverage Co-Authored-By: Joe Moura --- src/crewai/telemtry.py | 9 +++++++++ tests/backward_compatibility_test.py | 22 +++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/crewai/telemtry.py b/src/crewai/telemtry.py index a3cc37753..b67a62dee 100644 --- a/src/crewai/telemtry.py +++ b/src/crewai/telemtry.py @@ -5,6 +5,15 @@ This module allows older code that imports from `crewai.telemtry` (misspelled) to continue working by re-exporting the Telemetry class from the correctly spelled `crewai.telemetry` module. """ +import warnings + from crewai.telemetry import Telemetry +warnings.warn( + "Importing from 'crewai.telemtry' is deprecated due to spelling issues. " + "Please use 'from crewai.telemetry import Telemetry' instead.", + DeprecationWarning, + stacklevel=2 +) + __all__ = ["Telemetry"] diff --git a/tests/backward_compatibility_test.py b/tests/backward_compatibility_test.py index acb88a8ed..a1de393ad 100644 --- a/tests/backward_compatibility_test.py +++ b/tests/backward_compatibility_test.py @@ -1,10 +1,30 @@ import unittest +import warnings class BackwardCompatibilityTest(unittest.TestCase): def test_telemtry_typo_compatibility(self): """Test that the backward compatibility for the telemtry typo works.""" - from crewai.telemtry import Telemetry as MisspelledTelemetry from crewai.telemetry import Telemetry + from crewai.telemtry import Telemetry as MisspelledTelemetry self.assertIs(MisspelledTelemetry, Telemetry) + + def test_functionality_preservation(self): + """Test that the re-exported Telemetry class preserves all functionality.""" + from crewai.telemetry import Telemetry + from crewai.telemtry import Telemetry as MisspelledTelemetry + + self.assertEqual(dir(MisspelledTelemetry), dir(Telemetry)) + + def test_deprecation_warning(self): + """Test that importing from the misspelled module raises a deprecation warning.""" + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + + from crewai.telemtry import Telemetry # noqa: F401 + + self.assertEqual(len(w), 1) + self.assertTrue(issubclass(w[0].category, DeprecationWarning)) + self.assertIn("crewai.telemtry", str(w[0].message)) + self.assertIn("crewai.telemetry", str(w[0].message))