From 9c3231b560a2668535bd04db883021e22918d21a Mon Sep 17 00:00:00 2001 From: rosemaryYuan <91046107+rosemarYuan@users.noreply.github.com> Date: Fri, 29 May 2026 14:01:16 +0800 Subject: [PATCH 1/3] fix(e2e): make cross-language test order-insensitive and add request timeout - Python: check content presence in joined output instead of positional indexing, since StreamingFileSink + checkpoint may produce multiple part files whose iterdir() order is non-deterministic. - Java: add requestTimeout=240 to pythonChatModelConnection to prevent timeouts on slow CI runners. --- .../resource/test/ChatModelCrossLanguageAgent.java | 1 + .../yaml_cross_language_test.py | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java index a21b2e55c..e9f78b90f 100644 --- a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java @@ -78,6 +78,7 @@ public static ResourceDescriptor pythonChatModelConnection() { return ResourceDescriptor.Builder.newBuilder( ResourceName.ChatModel.PYTHON_WRAPPER_CONNECTION) .addInitialArgument("pythonClazz", ResourceName.ChatModel.Python.OLLAMA_CONNECTION) + .addInitialArgument("requestTimeout", 240) .build(); } diff --git a/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/yaml_cross_language_test.py b/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/yaml_cross_language_test.py index 442c729eb..ee9ed231e 100644 --- a/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/yaml_cross_language_test.py +++ b/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/yaml_cross_language_test.py @@ -154,8 +154,10 @@ def test_yaml_cross_language_agent( # Math path went through the Java ``calculateBMI`` tool: # 70 / (1.75 * 1.75) ≈ 22.86, so the final answer should mention 22. - assert "22" in actual_result[0], f"math answer missing '22': {actual_result[0]!r}" # Creative path doesn't use any tool. - assert "cat" in actual_result[1].lower(), ( - f"creative answer missing 'cat': {actual_result[1]!r}" - ) + # NOTE: We join all results and search without relying on order, because + # StreamingFileSink may produce multiple part files and iterdir() does not + # guarantee a deterministic traversal order across platforms. + joined = "\n".join(actual_result).lower() + assert "22" in joined, f"math answer missing '22': {actual_result!r}" + assert "cat" in joined, f"creative answer missing 'cat': {actual_result!r}" From 224557ca7e75b6d4104557a88a47f3321b959d1f Mon Sep 17 00:00:00 2001 From: rosemaryYuan <91046107+rosemarYuan@users.noreply.github.com> Date: Fri, 29 May 2026 15:47:02 +0800 Subject: [PATCH 2/3] fix(java): use snake_case for pythonChatModelConnection request_timeout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Python OllamaChatModelConnection uses snake_case field names. Java→Python kwargs path doesn't rename keys, so requestTimeout was silently dropped. Changed to request_timeout to match Python schema. --- .../flink/agents/resource/test/ChatModelCrossLanguageAgent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java index e9f78b90f..dec657042 100644 --- a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java @@ -78,7 +78,7 @@ public static ResourceDescriptor pythonChatModelConnection() { return ResourceDescriptor.Builder.newBuilder( ResourceName.ChatModel.PYTHON_WRAPPER_CONNECTION) .addInitialArgument("pythonClazz", ResourceName.ChatModel.Python.OLLAMA_CONNECTION) - .addInitialArgument("requestTimeout", 240) + .addInitialArgument("request_timeout", 240) .build(); } From d43f7f2d8fcaf6a393836a8580a024e409aca3f3 Mon Sep 17 00:00:00 2001 From: rosemaryYuan <91046107+rosemarYuan@users.noreply.github.com> Date: Sat, 30 May 2026 14:04:16 +0800 Subject: [PATCH 3/3] [hotfix] Fix order-sensitive assertion in cross-language chat model e2e test --- .../chat_model_cross_language_test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/chat_model_cross_language_test.py b/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/chat_model_cross_language_test.py index c17110954..8af10c3fc 100644 --- a/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/chat_model_cross_language_test.py +++ b/python/flink_agents/e2e_tests/e2e_tests_resource_cross_language/chat_model_cross_language_test.py @@ -106,5 +106,6 @@ def test_java_chat_model_integration( with file.open() as f: actual_result.extend(f.readlines()) - assert "3" in actual_result[0] - assert "cat" in actual_result[1] + joined = "\n".join(actual_result).lower() + assert "3" in joined, f"math answer missing '3': {actual_result!r}" + assert "cat" in joined, f"creative answer missing 'cat': {actual_result!r}"