Fix UnicodeDecodeError in litellm when loading JSON files on Windows

Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
Devin AI
2025-04-28 21:01:32 +00:00
parent 59f34d900a
commit 6e82b6d7b0
5 changed files with 80 additions and 0 deletions

View File

View File

@@ -0,0 +1,27 @@
import json
import os
import sys
import unittest
from unittest.mock import patch, mock_open
import pytest
from crewai.llm import LLM
class TestLitellmEncoding(unittest.TestCase):
"""Test that the litellm encoding patch works correctly."""
def test_json_load_with_utf8_encoding(self):
"""Test that json.load is called with UTF-8 encoding."""
mock_content = '{"test": "日本語テキスト"}' # Japanese text that would fail with cp1252
with patch('builtins.open', mock_open(read_data=mock_content)):
import litellm
self.assertTrue(hasattr(litellm.utils, 'json_data'))
with open('test.json', 'r') as f:
data = json.load(f)
self.assertEqual(data['test'], '日本語テキスト')