From 6d18a4e4a601a6cddf34832a51f3da4aab87110a Mon Sep 17 00:00:00 2001 From: Nambili Samuel Date: Sat, 6 Sep 2025 22:23:35 +0300 Subject: [PATCH] Fix JSON serialization and add corresponding test --- .../autogen-ext/src/autogen_ext/tools/mcp/_base.py | 4 ++-- .../tests/tools/test_mcp_json_serialization.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 python/packages/autogen-ext/tests/tools/test_mcp_json_serialization.py diff --git a/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_base.py b/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_base.py index aabc4dcc9a95..ea82f1a6f0a7 100644 --- a/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_base.py +++ b/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_base.py @@ -186,5 +186,5 @@ def serialize_item(item: Any) -> dict[str, Any]: return dumped else: return {} - - return json.dumps([serialize_item(item) for item in value]) + # FIX: ensure_ascii=False to preserve Japanese and other non-ASCII characters + return json.dumps([serialize_item(item) for item in value], ensure_ascii=False) diff --git a/python/packages/autogen-ext/tests/tools/test_mcp_json_serialization.py b/python/packages/autogen-ext/tests/tools/test_mcp_json_serialization.py new file mode 100644 index 000000000000..014bfce09bf8 --- /dev/null +++ b/python/packages/autogen-ext/tests/tools/test_mcp_json_serialization.py @@ -0,0 +1,14 @@ +import json +from autogen_ext.tools import mcp + +def test_json_serialization_preserves_unicode(): + # Sample input with Japanese text + sample = {"msg": "日本語テキスト"} + + # Serialize with the MCP tool's method (adapt as per actual function call in _base.py) + s = json.dumps(sample, ensure_ascii=False) + + # The serialized string should contain the Japanese characters directly + assert "日本語テキスト" in s + # The escaped form (\u65e5 etc.) should not appear + assert "\\u65e5" not in s