@@ -150,7 +150,7 @@ def resource_config_dynamic(self, batch_transform_settings_dynamic_query):
150150 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPathConfig"
151151 )
152152 @patch ("uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPath" )
153- @patch ("uipath_langchain.agent.tools.durable_interrupt.interrupt" )
153+ @patch ("uipath_langchain.agent.tools.durable_interrupt.decorator. interrupt" )
154154 @patch (
155155 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.mockable" ,
156156 lambda ** kwargs : lambda f : f ,
@@ -180,9 +180,8 @@ async def test_create_batch_transform_tool_static_query_index_ready(
180180 return_value = mock_index
181181 )
182182
183- # durable_interrupt always calls interrupt(); first for index, second for transform
183+ # Index is ready → ReadyEphemeralIndex skips interrupt(). Only create_batch_transform fires.
184184 mock_interrupt .side_effect = [
185- mock_index ,
186185 {"file_path" : "/path/to/output.csv" },
187186 ]
188187
@@ -226,8 +225,8 @@ async def test_create_batch_transform_tool_static_query_index_ready(
226225 assert call_kwargs ["usage" ] == "BatchRAG"
227226 assert mock_attachment .ID in call_kwargs ["attachments" ]
228227
229- # Both durable_interrupts call interrupt()
230- assert mock_interrupt .call_count == 2
228+ # Only create_batch_transform calls interrupt(); index was instant-resumed
229+ assert mock_interrupt .call_count == 1
231230
232231 # Verify attachment was uploaded
233232 mock_uipath .jobs .create_attachment_async .assert_called_once_with (
@@ -243,7 +242,7 @@ async def test_create_batch_transform_tool_static_query_index_ready(
243242 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPathConfig"
244243 )
245244 @patch ("uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPath" )
246- @patch ("uipath_langchain.agent.tools.durable_interrupt.interrupt" )
245+ @patch ("uipath_langchain.agent.tools.durable_interrupt.decorator. interrupt" )
247246 @patch (
248247 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.mockable" ,
249248 lambda ** kwargs : lambda f : f ,
@@ -324,7 +323,7 @@ async def test_create_batch_transform_tool_static_query_wait_for_ingestion(
324323 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPathConfig"
325324 )
326325 @patch ("uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPath" )
327- @patch ("uipath_langchain.agent.tools.durable_interrupt.interrupt" )
326+ @patch ("uipath_langchain.agent.tools.durable_interrupt.decorator. interrupt" )
328327 @patch (
329328 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.mockable" ,
330329 lambda ** kwargs : lambda f : f ,
@@ -354,9 +353,8 @@ async def test_create_batch_transform_tool_dynamic_query(
354353 return_value = mock_index
355354 )
356355
357- # durable_interrupt always calls interrupt(); first for index, second for transform
356+ # Index is ready → ReadyEphemeralIndex skips interrupt(). Only create_batch_transform fires.
358357 mock_interrupt .side_effect = [
359- mock_index ,
360358 {"output" : "Transformation complete" },
361359 ]
362360
@@ -397,7 +395,7 @@ async def test_create_batch_transform_tool_dynamic_query(
397395 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPathConfig"
398396 )
399397 @patch ("uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPath" )
400- @patch ("uipath_langchain.agent.tools.durable_interrupt.interrupt" )
398+ @patch ("uipath_langchain.agent.tools.durable_interrupt.decorator. interrupt" )
401399 @patch (
402400 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.mockable" ,
403401 lambda ** kwargs : lambda f : f ,
@@ -427,9 +425,8 @@ async def test_create_batch_transform_tool_default_destination_path(
427425 return_value = mock_index
428426 )
429427
430- # durable_interrupt always calls interrupt(); first for index, second for transform
428+ # Index is ready → ReadyEphemeralIndex skips interrupt(). Only create_batch_transform fires.
431429 mock_interrupt .side_effect = [
432- mock_index ,
433430 {"file_path" : "output.csv" },
434431 ]
435432
@@ -461,8 +458,8 @@ async def test_create_batch_transform_tool_default_destination_path(
461458 }
462459 }
463460
464- # Both durable_interrupts call interrupt()
465- assert mock_interrupt .call_count == 2
461+ # Only create_batch_transform calls interrupt(); index was instant-resumed
462+ assert mock_interrupt .call_count == 1
466463
467464 # Verify attachment was uploaded with default path
468465 mock_uipath .jobs .create_attachment_async .assert_called_once_with (
@@ -478,7 +475,7 @@ async def test_create_batch_transform_tool_default_destination_path(
478475 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPathConfig"
479476 )
480477 @patch ("uipath_langchain.agent.tools.internal_tools.batch_transform_tool.UiPath" )
481- @patch ("uipath_langchain.agent.tools.durable_interrupt.interrupt" )
478+ @patch ("uipath_langchain.agent.tools.durable_interrupt.decorator. interrupt" )
482479 @patch (
483480 "uipath_langchain.agent.tools.internal_tools.batch_transform_tool.mockable" ,
484481 lambda ** kwargs : lambda f : f ,
@@ -508,9 +505,8 @@ async def test_create_batch_transform_tool_custom_destination_path(
508505 return_value = mock_index
509506 )
510507
511- # durable_interrupt always calls interrupt(); first for index, second for transform
508+ # Index is ready → ReadyEphemeralIndex skips interrupt(). Only create_batch_transform fires.
512509 mock_interrupt .side_effect = [
513- mock_index ,
514510 {"file_path" : "/custom/path/result.csv" },
515511 ]
516512
0 commit comments