diff --git a/tests/test_litellm/litellm_core_utils/test_token_counter.py b/tests/test_litellm/litellm_core_utils/test_token_counter.py index 875f3db15d..1506e7b5af 100644 --- a/tests/test_litellm/litellm_core_utils/test_token_counter.py +++ b/tests/test_litellm/litellm_core_utils/test_token_counter.py @@ -491,7 +491,32 @@ from unittest.mock import MagicMock, patch from litellm.utils import _select_tokenizer_helper, claude_json_str, encoding +# Clear the cache at module load to ensure clean state +_select_tokenizer_helper.cache_clear() + + +@pytest.fixture(autouse=True, scope="function") +def clear_tokenizer_cache_before_test(): + """Clear the LRU cache before each test to ensure test isolation. + + The _select_tokenizer_helper function is decorated with @lru_cache, + which can cause cache hits from previous tests when running with + --dist=loadscope (tests from same file run on same worker). + """ + # Clear before test + _select_tokenizer_helper.cache_clear() + yield + + class TestTokenizerSelection(unittest.TestCase): + @classmethod + def setUpClass(cls): + """Clear cache before class starts.""" + _select_tokenizer_helper.cache_clear() + + def setUp(self): + """Clear cache before each test method.""" + _select_tokenizer_helper.cache_clear() @patch("litellm.utils.Tokenizer.from_pretrained") def test_llama3_tokenizer_api_failure(self, mock_from_pretrained): # Setup mock to raise an error