From bae3453c509120f80d30e092bb73cdf93fb2b97e Mon Sep 17 00:00:00 2001 From: Charles Yao Date: Thu, 16 Jul 2026 22:32:32 -0700 Subject: [PATCH] test: complete workflow test doubles with env/conversation variables The secret-scrub wiring reads workflow.environment_variables / conversation_variables when building the response converter; unit tests that mock the workflow as a bare SimpleNamespace must provide these attributes (empty = no secrets). Fixes the workflow task-pipeline and HITL contract tests. --- .../service_api/app/test_hitl_service_api.py | 16 ++++++++++++++-- .../workflow/test_generate_task_pipeline_core.py | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py b/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py index 129220cbc9c..6941debed5c 100644 --- a/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py +++ b/api/tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py @@ -433,7 +433,13 @@ class TestHitlServiceApi: ) pipeline = AdvancedChatAppGenerateTaskPipeline( application_generate_entity=application_generate_entity, - workflow=SimpleNamespace(id="workflow-id", tenant_id="tenant", features_dict={}), + workflow=SimpleNamespace( + id="workflow-id", + tenant_id="tenant", + features_dict={}, + environment_variables=[], + conversation_variables=[], + ), queue_manager=SimpleNamespace(invoke_from=InvokeFrom.WEB_APP, graph_runtime_state=None), conversation=SimpleNamespace(id="conv-id", mode=AppMode.ADVANCED_CHAT), message=SimpleNamespace( @@ -526,7 +532,13 @@ class TestHitlServiceApi: ) pipeline = WorkflowAppGenerateTaskPipeline( application_generate_entity=application_generate_entity, - workflow=SimpleNamespace(id="workflow-id", tenant_id="tenant", features_dict={}), + workflow=SimpleNamespace( + id="workflow-id", + tenant_id="tenant", + features_dict={}, + environment_variables=[], + conversation_variables=[], + ), queue_manager=SimpleNamespace(invoke_from=InvokeFrom.WEB_APP, graph_runtime_state=None), user=SimpleNamespace(id="user", session_id="session"), stream=False, diff --git a/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py b/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py index 04fe7a2ebed..14834d5c6fd 100644 --- a/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py +++ b/api/tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py @@ -79,7 +79,13 @@ def _make_pipeline(): extras={}, call_depth=0, ) - workflow = SimpleNamespace(id="workflow-id", tenant_id="tenant", features_dict={}) + workflow = SimpleNamespace( + id="workflow-id", + tenant_id="tenant", + features_dict={}, + environment_variables=[], + conversation_variables=[], + ) user = SimpleNamespace(id="user", session_id="session") pipeline = WorkflowAppGenerateTaskPipeline( @@ -505,7 +511,13 @@ class TestWorkflowGenerateTaskPipeline: extras={}, call_depth=0, ) - workflow = SimpleNamespace(id="workflow-id", tenant_id="tenant", features_dict={}) + workflow = SimpleNamespace( + id="workflow-id", + tenant_id="tenant", + features_dict={}, + environment_variables=[], + conversation_variables=[], + ) queue_manager = SimpleNamespace(invoke_from=InvokeFrom.WEB_APP, graph_runtime_state=None) end_user = EndUser(tenant_id="tenant", type="session", name="user", session_id="session-id") end_user.id = "end-user-id"