@@ -5497,6 +5497,7 @@ async def my_dynamic_signal(self, name: str, args: Sequence[RawValue]) -> None:
54975497 await workflow .wait_condition (lambda : self .handlers_may_finish )
54985498
54995499
5500+ @pytest .mark .parametrize ("handler_type" , ["signal" , "update" ])
55005501@pytest .mark .parametrize (
55015502 "handler_registration" , ["late_registered" , "not_late_registered" ]
55025503)
@@ -5505,161 +5506,26 @@ async def my_dynamic_signal(self, name: str, args: Sequence[RawValue]) -> None:
55055506 "handler_waiting" ,
55065507 ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
55075508)
5508- async def test_unfinished_update_handler_with_workflow_cancellation (
5509- client : Client ,
5510- env : WorkflowEnvironment ,
5511- handler_registration : Literal ["late_registered" , "not_late_registered" ],
5512- handler_dynamism : Literal ["dynamic" , "not_dynamic" ],
5513- handler_waiting : Literal ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5514- ):
5515- if env .supports_time_skipping :
5516- pytest .skip (
5517- "Java test server: https://github.com/temporalio/sdk-java/issues/1903"
5518- )
5519- await _UnfinishedHandlersOnWorkflowTerminationTest (
5520- client ,
5521- "update" ,
5522- "cancellation" ,
5523- handler_registration ,
5524- handler_dynamism ,
5525- handler_waiting ,
5526- ).test_warning_is_issued_on_exit_with_unfinished_handler ()
5527-
5528-
5529- @pytest .mark .parametrize (
5530- "handler_registration" , ["late_registered" , "not_late_registered" ]
5531- )
5532- @pytest .mark .parametrize ("handler_dynamism" , ["dynamic" , "not_dynamic" ])
5533- @pytest .mark .parametrize (
5534- "handler_waiting" ,
5535- ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5536- )
5537- async def test_unfinished_signal_handler_with_workflow_cancellation (
5538- client : Client ,
5539- handler_registration : Literal ["late_registered" , "not_late_registered" ],
5540- handler_dynamism : Literal ["dynamic" , "not_dynamic" ],
5541- handler_waiting : Literal ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5542- ):
5543- await _UnfinishedHandlersOnWorkflowTerminationTest (
5544- client ,
5545- "signal" ,
5546- "cancellation" ,
5547- handler_registration ,
5548- handler_dynamism ,
5549- handler_waiting ,
5550- ).test_warning_is_issued_on_exit_with_unfinished_handler ()
5551-
5552-
5553- @pytest .mark .parametrize (
5554- "handler_registration" , ["late_registered" , "not_late_registered" ]
5555- )
5556- @pytest .mark .parametrize ("handler_dynamism" , ["dynamic" , "not_dynamic" ])
5557- @pytest .mark .parametrize (
5558- "handler_waiting" ,
5559- ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5560- )
5561- async def test_unfinished_update_handler_with_workflow_failure (
5562- client : Client ,
5563- env : WorkflowEnvironment ,
5564- handler_registration : Literal ["late_registered" , "not_late_registered" ],
5565- handler_dynamism : Literal ["dynamic" , "not_dynamic" ],
5566- handler_waiting : Literal ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5567- ):
5568- if env .supports_time_skipping :
5569- pytest .skip (
5570- "Java test server: https://github.com/temporalio/sdk-java/issues/1903"
5571- )
5572- await _UnfinishedHandlersOnWorkflowTerminationTest (
5573- client ,
5574- "update" ,
5575- "failure" ,
5576- handler_registration ,
5577- handler_dynamism ,
5578- handler_waiting ,
5579- ).test_warning_is_issued_on_exit_with_unfinished_handler ()
5580-
5581-
5582- @pytest .mark .parametrize (
5583- "handler_registration" , ["late_registered" , "not_late_registered" ]
5584- )
5585- @pytest .mark .parametrize ("handler_dynamism" , ["dynamic" , "not_dynamic" ])
55865509@pytest .mark .parametrize (
5587- "handler_waiting" ,
5588- ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5510+ "workflow_termination_type" , ["cancellation" , "failure" , "continue-as-new" ]
55895511)
5590- async def test_unfinished_signal_handler_with_workflow_failure (
5512+ async def test_unfinished_handler_on_workflow_termination (
55915513 client : Client ,
55925514 env : WorkflowEnvironment ,
5515+ handler_type : Literal ["signal" , "update" ],
55935516 handler_registration : Literal ["late_registered" , "not_late_registered" ],
55945517 handler_dynamism : Literal ["dynamic" , "not_dynamic" ],
55955518 handler_waiting : Literal ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5519+ workflow_termination_type : Literal ["cancellation" , "failure" , "continue-as-new" ],
55965520):
5597- if env .supports_time_skipping :
5598- pytest .skip (
5599- "Java test server: https://github.com/temporalio/sdk-java/issues/2127"
5600- )
5601- await _UnfinishedHandlersOnWorkflowTerminationTest (
5602- client ,
5603- "signal" ,
5604- "failure" ,
5605- handler_registration ,
5606- handler_dynamism ,
5607- handler_waiting ,
5608- ).test_warning_is_issued_on_exit_with_unfinished_handler ()
5609-
5610-
5611- @pytest .mark .parametrize (
5612- "handler_registration" , ["late_registered" , "not_late_registered" ]
5613- )
5614- @pytest .mark .parametrize ("handler_dynamism" , ["dynamic" , "not_dynamic" ])
5615- @pytest .mark .parametrize (
5616- "handler_waiting" ,
5617- ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5618- )
5619- async def test_unfinished_update_handler_with_continue_as_new (
5620- client : Client ,
5621- env : WorkflowEnvironment ,
5622- handler_registration : Literal ["late_registered" , "not_late_registered" ],
5623- handler_dynamism : Literal ["dynamic" , "not_dynamic" ],
5624- handler_waiting : Literal ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5625- ):
5626- if env .supports_time_skipping :
5521+ if handler_type == "update" and env .supports_time_skipping :
56275522 pytest .skip (
56285523 "Java test server: https://github.com/temporalio/sdk-java/issues/1903"
56295524 )
56305525 await _UnfinishedHandlersOnWorkflowTerminationTest (
56315526 client ,
5632- "update" ,
5633- "continue-as-new" ,
5634- handler_registration ,
5635- handler_dynamism ,
5636- handler_waiting ,
5637- ).test_warning_is_issued_on_exit_with_unfinished_handler ()
5638-
5639-
5640- @pytest .mark .parametrize (
5641- "handler_registration" , ["late_registered" , "not_late_registered" ]
5642- )
5643- @pytest .mark .parametrize ("handler_dynamism" , ["dynamic" , "not_dynamic" ])
5644- @pytest .mark .parametrize (
5645- "handler_waiting" ,
5646- ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5647- )
5648- async def test_unfinished_signal_handler_with_continue_as_new (
5649- client : Client ,
5650- env : WorkflowEnvironment ,
5651- handler_registration : Literal ["late_registered" , "not_late_registered" ],
5652- handler_dynamism : Literal ["dynamic" , "not_dynamic" ],
5653- handler_waiting : Literal ["wait_all_handlers_finish" , "no_wait_all_handlers_finish" ],
5654- ):
5655- if env .supports_time_skipping :
5656- pytest .skip (
5657- "Java test server: https://github.com/temporalio/sdk-java/issues/2127"
5658- )
5659- await _UnfinishedHandlersOnWorkflowTerminationTest (
5660- client ,
5661- "signal" ,
5662- "continue-as-new" ,
5527+ handler_type ,
5528+ workflow_termination_type ,
56635529 handler_registration ,
56645530 handler_dynamism ,
56655531 handler_waiting ,
0 commit comments