From 17c8dbd9aa348755bd3593664bc6119ea0393d9c Mon Sep 17 00:00:00 2001 From: rayhpeng Date: Sat, 4 Apr 2026 09:04:37 +0800 Subject: [PATCH] fix(converters): handle empty list content as null, clean up test Co-Authored-By: Claude Opus 4.6 (1M context) --- backend/packages/harness/deerflow/runtime/converters.py | 2 +- backend/tests/test_converters.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/backend/packages/harness/deerflow/runtime/converters.py b/backend/packages/harness/deerflow/runtime/converters.py index 8fa2068dc..aa54add35 100644 --- a/backend/packages/harness/deerflow/runtime/converters.py +++ b/backend/packages/harness/deerflow/runtime/converters.py @@ -56,7 +56,7 @@ def langchain_to_openai_message(message: Any) -> dict: }, }) # If no text content, set content to null per OpenAI spec - result["content"] = content if (isinstance(content, list) or content) else None + result["content"] = content if (isinstance(content, list) and content) or (isinstance(content, str) and content) else None result["tool_calls"] = openai_tool_calls else: result["content"] = content diff --git a/backend/tests/test_converters.py b/backend/tests/test_converters.py index 0f049611e..3ee6f19f3 100644 --- a/backend/tests/test_converters.py +++ b/backend/tests/test_converters.py @@ -123,10 +123,6 @@ class TestLangchainToOpenaiMessage: class TestLangchainToOpenaiCompletion: def test_basic_completion(self): - usage = MagicMock() - usage.__getitem__ = lambda self, k: {"input_tokens": 10, "output_tokens": 20}[k] - usage.get = lambda k, d=None: {"input_tokens": 10, "output_tokens": 20}.get(k, d) - # Use a real dict for usage_metadata usage_metadata = {"input_tokens": 10, "output_tokens": 20} msg = _make_ai_message( content="Hello",