@@ -285,7 +285,7 @@ def test_should_complete_workflow_with_error_when_invocation_fails(
285285 failed_response = DurableExecutionInvocationOutput (
286286 status = InvocationStatus .FAILED , error = ErrorObject .from_message ("Test error" )
287287 )
288- mock_invoker .invoke .return_value = failed_response
288+ mock_invoker .invoke .return_value = ( failed_response , "test-request-id" )
289289
290290 # Mock execution creation and store behavior
291291 with patch (
@@ -329,7 +329,7 @@ def test_should_complete_workflow_with_result_when_invocation_succeeds(
329329 success_response = DurableExecutionInvocationOutput (
330330 status = InvocationStatus .SUCCEEDED , result = "success result"
331331 )
332- mock_invoker .invoke .return_value = success_response
332+ mock_invoker .invoke .return_value = ( success_response , "test-request-id" )
333333
334334 # Mock execution creation and store behavior
335335 with patch (
@@ -372,7 +372,7 @@ def test_should_handle_pending_status_when_operations_exist(
372372 mock_invocation_input = Mock ()
373373 mock_invoker .create_invocation_input .return_value = mock_invocation_input
374374 pending_response = DurableExecutionInvocationOutput (status = InvocationStatus .PENDING )
375- mock_invoker .invoke .return_value = pending_response
375+ mock_invoker .invoke .return_value = ( pending_response , "test-request-id" )
376376
377377 # Mock execution creation and store behavior
378378 with patch (
@@ -409,8 +409,9 @@ def test_should_ignore_response_when_execution_already_complete(
409409
410410 # Mock invoker - this shouldn't be called since execution is complete
411411 mock_invoker .create_invocation_input .return_value = Mock ()
412- mock_invoker .invoke .return_value = DurableExecutionInvocationOutput (
413- status = InvocationStatus .SUCCEEDED
412+ mock_invoker .invoke .return_value = (
413+ DurableExecutionInvocationOutput (status = InvocationStatus .SUCCEEDED ),
414+ "test-request-id" ,
414415 )
415416
416417 # Mock execution creation and store behavior
@@ -452,7 +453,7 @@ def test_should_retry_when_response_has_no_status(
452453 mock_invocation_input = Mock ()
453454 mock_invoker .create_invocation_input .return_value = mock_invocation_input
454455 no_status_response = DurableExecutionInvocationOutput (status = None )
455- mock_invoker .invoke .return_value = no_status_response
456+ mock_invoker .invoke .return_value = ( no_status_response , "test-request-id" )
456457
457458 # Mock execution creation and store behavior
458459 with patch (
@@ -495,7 +496,7 @@ def test_should_retry_when_failed_response_has_result(
495496 invalid_response = DurableExecutionInvocationOutput (
496497 status = InvocationStatus .FAILED , result = "should not have result"
497498 )
498- mock_invoker .invoke .return_value = invalid_response
499+ mock_invoker .invoke .return_value = ( invalid_response , "test-request-id" )
499500
500501 # Mock execution creation and store behavior
501502 with patch (
@@ -539,7 +540,7 @@ def test_should_retry_when_success_response_has_error(
539540 status = InvocationStatus .SUCCEEDED ,
540541 error = ErrorObject .from_message ("should not have error" ),
541542 )
542- mock_invoker .invoke .return_value = invalid_response
543+ mock_invoker .invoke .return_value = ( invalid_response , "test-request-id" )
543544
544545 # Mock execution creation and store behavior
545546 with patch (
@@ -581,7 +582,7 @@ def test_should_retry_when_pending_response_has_no_operations(
581582 mock_invocation_input = Mock ()
582583 mock_invoker .create_invocation_input .return_value = mock_invocation_input
583584 pending_response = DurableExecutionInvocationOutput (status = InvocationStatus .PENDING )
584- mock_invoker .invoke .return_value = pending_response
585+ mock_invoker .invoke .return_value = ( pending_response , "test-request-id" )
585586
586587 # Mock execution creation and store behavior
587588 with patch (
@@ -622,7 +623,7 @@ def test_invoke_handler_success(
622623 mock_response = DurableExecutionInvocationOutput (
623624 status = InvocationStatus .SUCCEEDED , result = "test"
624625 )
625- mock_invoker .invoke .return_value = mock_response
626+ mock_invoker .invoke .return_value = ( mock_response , "test-request-id" )
626627
627628 # Mock execution creation and store behavior
628629 with patch (
@@ -694,7 +695,7 @@ def test_invoke_handler_execution_completed_during_invocation(
694695 mock_invocation_input = Mock ()
695696 mock_invoker .create_invocation_input .return_value = mock_invocation_input
696697 mock_response = Mock ()
697- mock_invoker .invoke .return_value = mock_response
698+ mock_invoker .invoke .return_value = ( mock_response , "test-request-id" )
698699
699700 # Create a completed execution mock
700701 completed_execution = Mock ()
@@ -1037,7 +1038,10 @@ def test_should_retry_invocation_when_under_limit_through_public_api(
10371038 success_response = DurableExecutionInvocationOutput (
10381039 status = InvocationStatus .SUCCEEDED , result = "final success"
10391040 )
1040- mock_invoker .invoke .side_effect = [invalid_response , success_response ]
1041+ mock_invoker .invoke .side_effect = [
1042+ (invalid_response , "test-request-id-1" ),
1043+ (success_response , "test-request-id-2" ),
1044+ ]
10411045
10421046 # Mock execution creation and store behavior
10431047 with patch (
@@ -1435,7 +1439,7 @@ def test_should_retry_when_response_has_unexpected_status(
14351439 mock_invoker .create_invocation_input .return_value = mock_invocation_input
14361440 unexpected_response = Mock ()
14371441 unexpected_response .status = "UNKNOWN_STATUS"
1438- mock_invoker .invoke .return_value = unexpected_response
1442+ mock_invoker .invoke .return_value = ( unexpected_response , "test-request-id" )
14391443
14401444 # Mock execution creation and store behavior
14411445 with patch (
@@ -1480,7 +1484,7 @@ def test_invoke_handler_execution_completed_during_invocation_async(
14801484 mock_invocation_input = Mock ()
14811485 mock_invoker .create_invocation_input .return_value = mock_invocation_input
14821486 mock_response = Mock ()
1483- mock_invoker .invoke .return_value = mock_response
1487+ mock_invoker .invoke .return_value = ( mock_response , "test-request-id" )
14841488
14851489 # Mock execution creation
14861490 with patch (
@@ -1566,7 +1570,7 @@ def test_invoke_handler_general_exception_async(
15661570 success_response = DurableExecutionInvocationOutput (
15671571 status = InvocationStatus .SUCCEEDED , result = "success"
15681572 )
1569- mock_invoker .invoke .return_value = success_response
1573+ mock_invoker .invoke .return_value = ( success_response , "test-request-id" )
15701574
15711575 # Mock execution creation and store behavior
15721576 with patch (
@@ -2094,6 +2098,7 @@ def test_get_execution_history(executor, mock_store):
20942098 mock_execution = Mock ()
20952099 mock_execution .operations = [] # Empty operations list
20962100 mock_execution .updates = []
2101+ mock_execution .invocation_completions = []
20972102 mock_execution .durable_execution_arn = ""
20982103 mock_execution .start_input = Mock ()
20992104 mock_execution .result = Mock ()
@@ -2123,6 +2128,7 @@ def test_get_execution_history_with_events(executor, mock_store):
21232128 mock_execution = Mock ()
21242129 mock_execution .operations = [op1 ]
21252130 mock_execution .updates = []
2131+ mock_execution .invocation_completions = []
21262132 mock_execution .durable_execution_arn = ""
21272133 mock_execution .start_input = Mock ()
21282134 mock_execution .result = Mock ()
@@ -2148,6 +2154,7 @@ def test_get_execution_history_reverse_order(executor, mock_store):
21482154 mock_execution = Mock ()
21492155 mock_execution .operations = [op1 ]
21502156 mock_execution .updates = []
2157+ mock_execution .invocation_completions = []
21512158 mock_execution .durable_execution_arn = ""
21522159 mock_execution .start_input = Mock ()
21532160 mock_execution .result = Mock ()
@@ -2178,6 +2185,7 @@ def test_get_execution_history_pagination(executor, mock_store):
21782185 mock_execution = Mock ()
21792186 mock_execution .operations = operations
21802187 mock_execution .updates = []
2188+ mock_execution .invocation_completions = []
21812189 mock_execution .durable_execution_arn = ""
21822190 mock_execution .start_input = Mock ()
21832191 mock_execution .result = Mock ()
@@ -2206,6 +2214,7 @@ def test_get_execution_history_pagination_with_marker(executor, mock_store):
22062214 mock_execution = Mock ()
22072215 mock_execution .operations = operations
22082216 mock_execution .updates = []
2217+ mock_execution .invocation_completions = []
22092218 mock_execution .durable_execution_arn = ""
22102219 mock_execution .start_input = Mock ()
22112220 mock_execution .result = Mock ()
@@ -2223,6 +2232,7 @@ def test_get_execution_history_invalid_marker(executor, mock_store):
22232232 mock_execution = Mock ()
22242233 mock_execution .operations = []
22252234 mock_execution .updates = []
2235+ mock_execution .invocation_completions = []
22262236 mock_execution .durable_execution_arn = ""
22272237 mock_execution .start_input = Mock ()
22282238 mock_execution .result = Mock ()
@@ -2399,6 +2409,7 @@ def test_send_callback_heartbeat(executor, mock_store):
23992409 mock_operation .status = OperationStatus .STARTED
24002410 mock_execution .find_callback_operation .return_value = (0 , mock_operation )
24012411 mock_execution .updates = [] # No callback options to reset timeout
2412+ mock_execution .invocation_completions = []
24022413 mock_store .load .return_value = mock_execution
24032414
24042415 result = executor .send_callback_heartbeat (callback_id )
@@ -2651,6 +2662,7 @@ def test_schedule_callback_timeouts_no_callback_options(executor, mock_store):
26512662 mock_execution = Mock ()
26522663 mock_execution .find_operation .return_value = (0 , operation )
26532664 mock_execution .updates = [] # No updates with callback options
2665+ mock_execution .invocation_completions = []
26542666 mock_store .load .return_value = mock_execution
26552667
26562668 # Should return early without scheduling
0 commit comments