@@ -679,21 +679,36 @@ async def some_signal(self, param: BadSignalParam) -> None:
679679
680680
681681async def test_workflow_bad_signal_param (client : Client ):
682- async with new_worker (client , BadSignalParamWorkflow ) as worker :
683- handle = await client .start_workflow (
684- BadSignalParamWorkflow .run ,
685- id = f"workflow-{ uuid .uuid4 ()} " ,
686- task_queue = worker .task_queue ,
682+ with LogCapturer ().logs_captured (
683+ temporalio .worker ._workflow_instance .logger
684+ ) as capturer :
685+ async with new_worker (client , BadSignalParamWorkflow ) as worker :
686+ handle = await client .start_workflow (
687+ BadSignalParamWorkflow .run ,
688+ id = f"workflow-{ uuid .uuid4 ()} " ,
689+ task_queue = worker .task_queue ,
690+ )
691+ # Send 4 signals, first and third are bad
692+ await handle .signal ("some_signal" , "bad" )
693+ await handle .signal ("some_signal" , BadSignalParam (some_str = "good" ))
694+ await handle .signal ("some_signal" , 123 )
695+ await handle .signal ("some_signal" , BadSignalParam (some_str = "finish" ))
696+ assert [
697+ BadSignalParam (some_str = "good" ),
698+ BadSignalParam (some_str = "finish" ),
699+ ] == await handle .result ()
700+
701+ # Check that the log message includes workflow context
702+ record = capturer .find_log ("Failed deserializing signal input" )
703+ assert record is not None
704+ assert "some_signal" in record .message
705+ assert "BadSignalParamWorkflow" in record .message
706+ assert handle .id in record .message
707+ assert hasattr (record , "temporal_workflow" )
708+ assert (
709+ getattr (record , "temporal_workflow" )["workflow_type" ]
710+ == "BadSignalParamWorkflow"
687711 )
688- # Send 4 signals, first and third are bad
689- await handle .signal ("some_signal" , "bad" )
690- await handle .signal ("some_signal" , BadSignalParam (some_str = "good" ))
691- await handle .signal ("some_signal" , 123 )
692- await handle .signal ("some_signal" , BadSignalParam (some_str = "finish" ))
693- assert [
694- BadSignalParam (some_str = "good" ),
695- BadSignalParam (some_str = "finish" ),
696- ] == await handle .result ()
697712
698713
699714@workflow .defn
0 commit comments