22import json
33from uuid import uuid4
44from asyncio import Future
5- from typing import Dict , List
5+ from typing import Dict , List , Callable
66
77from unittest .mock import Mock , MagicMock
88import aiounittest
99
10+ from botframework .connector .auth import (
11+ AuthenticationConfiguration ,
12+ AuthenticationConstants ,
13+ ClaimsIdentity ,
14+ )
1015from botbuilder .core import (
1116 TurnContext ,
1217 BotActionNotImplementedError ,
2833 Transcript ,
2934 CallerIdConstants ,
3035)
31- from botframework .connector .auth import (
32- AuthenticationConfiguration ,
33- AuthenticationConstants ,
34- ClaimsIdentity ,
35- )
3636
3737
3838class ConversationIdFactoryForTest (ConversationIdFactoryBase ):
@@ -206,10 +206,30 @@ async def test_on_send_to_conversation(self):
206206 )
207207
208208 mock_adapter = Mock ()
209- mock_adapter .continue_conversation = MagicMock (return_value = Future ())
210- mock_adapter .continue_conversation .return_value .set_result (Mock ())
211- mock_adapter .send_activities = MagicMock (return_value = Future ())
212- mock_adapter .send_activities .return_value .set_result ([])
209+
210+ async def continue_conversation (
211+ reference : ConversationReference ,
212+ callback : Callable ,
213+ bot_id : str = None ,
214+ claims_identity : ClaimsIdentity = None ,
215+ audience : str = None ,
216+ ): # pylint: disable=unused-argument
217+ await callback (
218+ TurnContext (
219+ mock_adapter ,
220+ conversation_reference_extension .get_continuation_activity (
221+ self ._conversation_reference
222+ ),
223+ )
224+ )
225+
226+ async def send_activities (
227+ context : TurnContext , activities : List [Activity ]
228+ ): # pylint: disable=unused-argument
229+ return [ResourceResponse (id = "resourceId" )]
230+
231+ mock_adapter .continue_conversation = continue_conversation
232+ mock_adapter .send_activities = send_activities
213233
214234 sut = self .create_skill_handler_for_testing (mock_adapter )
215235
@@ -218,25 +238,12 @@ async def test_on_send_to_conversation(self):
218238
219239 assert not activity .caller_id
220240
221- await sut .test_on_send_to_conversation (
241+ resource_response = await sut .test_on_send_to_conversation (
222242 self ._claims_identity , self ._conversation_id , activity
223243 )
224244
225- args , kwargs = mock_adapter .continue_conversation .call_args_list [0 ]
226-
227- assert isinstance (args [0 ], ConversationReference )
228- assert callable (args [1 ])
229- assert isinstance (kwargs ["claims_identity" ], ClaimsIdentity )
230-
231- await args [1 ](
232- TurnContext (
233- mock_adapter ,
234- conversation_reference_extension .get_continuation_activity (
235- self ._conversation_reference
236- ),
237- )
238- )
239245 assert activity .caller_id is None
246+ assert resource_response .id == "resourceId"
240247
241248 async def test_forwarding_on_send_to_conversation (self ):
242249 self ._conversation_id = await self ._test_id_factory .create_skill_conversation_id (
0 commit comments