|
34 | 34 | TabContext, |
35 | 35 | MeetingParticipantsEventDetails, |
36 | 36 | ReadReceiptInfo, |
| 37 | + TeamsChannelData, |
37 | 38 | ) |
38 | 39 | from botframework.connector import Channels |
39 | 40 | from simple_adapter import SimpleAdapter |
@@ -219,6 +220,14 @@ async def on_teams_messaging_extension_query( |
219 | 220 | self.record.append("on_teams_messaging_extension_query") |
220 | 221 | return await super().on_teams_messaging_extension_query(turn_context, query) |
221 | 222 |
|
| 223 | + async def on_teams_anonymous_app_based_link_query( |
| 224 | + self, turn_context: TurnContext, query: AppBasedLinkQuery |
| 225 | + ): |
| 226 | + self.record.append("on_teams_anonymous_app_based_link_query") |
| 227 | + return await super().on_teams_anonymous_app_based_link_query( |
| 228 | + turn_context, query |
| 229 | + ) |
| 230 | + |
222 | 231 | async def on_teams_messaging_extension_submit_action_dispatch( |
223 | 232 | self, turn_context: TurnContext, action: MessagingExtensionAction |
224 | 233 | ): |
@@ -351,6 +360,26 @@ async def on_teams_meeting_end_event( |
351 | 360 | turn_context.activity.value, turn_context |
352 | 361 | ) |
353 | 362 |
|
| 363 | + async def on_message_update_activity(self, turn_context: TurnContext): |
| 364 | + self.record.append("on_message_update_activity") |
| 365 | + return await super().on_message_update_activity(turn_context) |
| 366 | + |
| 367 | + async def on_teams_message_edit(self, turn_context: TurnContext): |
| 368 | + self.record.append("on_teams_message_edit") |
| 369 | + return await super().on_teams_message_edit(turn_context) |
| 370 | + |
| 371 | + async def on_teams_message_undelete(self, turn_context: TurnContext): |
| 372 | + self.record.append("on_teams_message_undelete") |
| 373 | + return await super().on_teams_message_undelete(turn_context) |
| 374 | + |
| 375 | + async def on_message_delete_activity(self, turn_context: TurnContext): |
| 376 | + self.record.append("on_message_delete_activity") |
| 377 | + return await super().on_message_delete_activity(turn_context) |
| 378 | + |
| 379 | + async def on_teams_message_soft_delete(self, turn_context: TurnContext): |
| 380 | + self.record.append("on_teams_message_soft_delete") |
| 381 | + return await super().on_teams_message_soft_delete(turn_context) |
| 382 | + |
354 | 383 | async def on_teams_meeting_participants_join_event( |
355 | 384 | self, meeting: MeetingParticipantsEventDetails, turn_context: TurnContext |
356 | 385 | ): |
@@ -816,6 +845,25 @@ async def test_on_app_based_link_query(self): |
816 | 845 | assert bot.record[0] == "on_invoke_activity" |
817 | 846 | assert bot.record[1] == "on_teams_messaging_extension_query" |
818 | 847 |
|
| 848 | + async def test_compose_extension_anonymous_query_link(self): |
| 849 | + # arrange |
| 850 | + activity = Activity( |
| 851 | + type=ActivityTypes.invoke, |
| 852 | + name="composeExtension/anonymousQueryLink", |
| 853 | + value={"url": "http://www.test.com"}, |
| 854 | + ) |
| 855 | + |
| 856 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 857 | + |
| 858 | + # Act |
| 859 | + bot = TestingTeamsActivityHandler() |
| 860 | + await bot.on_turn(turn_context) |
| 861 | + |
| 862 | + # Assert |
| 863 | + assert len(bot.record) == 2 |
| 864 | + assert bot.record[0] == "on_invoke_activity" |
| 865 | + assert bot.record[1] == "on_teams_anonymous_app_based_link_query" |
| 866 | + |
819 | 867 | async def test_on_teams_messaging_extension_bot_message_preview_edit_activity(self): |
820 | 868 | # Arrange |
821 | 869 |
|
@@ -1254,6 +1302,124 @@ async def test_on_teams_meeting_end_event(self): |
1254 | 1302 | assert bot.record[0] == "on_event_activity" |
1255 | 1303 | assert bot.record[1] == "on_teams_meeting_end_event" |
1256 | 1304 |
|
| 1305 | + async def test_message_update_activity_teams_message_edit(self): |
| 1306 | + # Arrange |
| 1307 | + activity = Activity( |
| 1308 | + type=ActivityTypes.message_update, |
| 1309 | + channel_data=TeamsChannelData(event_type="editMessage"), |
| 1310 | + channel_id=Channels.ms_teams, |
| 1311 | + ) |
| 1312 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1313 | + |
| 1314 | + # Act |
| 1315 | + bot = TestingTeamsActivityHandler() |
| 1316 | + await bot.on_turn(turn_context) |
| 1317 | + |
| 1318 | + # Assert |
| 1319 | + self.assertEqual(2, len(bot.record)) |
| 1320 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1321 | + self.assertEqual("on_teams_message_edit", bot.record[1]) |
| 1322 | + |
| 1323 | + async def test_message_update_activity_teams_message_undelete(self): |
| 1324 | + # Arrange |
| 1325 | + activity = Activity( |
| 1326 | + type=ActivityTypes.message_update, |
| 1327 | + channel_data=TeamsChannelData(event_type="undeleteMessage"), |
| 1328 | + channel_id=Channels.ms_teams, |
| 1329 | + ) |
| 1330 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1331 | + |
| 1332 | + # Act |
| 1333 | + bot = TestingTeamsActivityHandler() |
| 1334 | + await bot.on_turn(turn_context) |
| 1335 | + |
| 1336 | + # Assert |
| 1337 | + self.assertEqual(2, len(bot.record)) |
| 1338 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1339 | + self.assertEqual("on_teams_message_undelete", bot.record[1]) |
| 1340 | + |
| 1341 | + async def test_message_update_activity_teams_message_undelete_no_msteams(self): |
| 1342 | + # Arrange |
| 1343 | + activity = Activity( |
| 1344 | + type=ActivityTypes.message_update, |
| 1345 | + channel_data=TeamsChannelData(event_type="undeleteMessage"), |
| 1346 | + ) |
| 1347 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1348 | + |
| 1349 | + # Act |
| 1350 | + bot = TestingTeamsActivityHandler() |
| 1351 | + await bot.on_turn(turn_context) |
| 1352 | + |
| 1353 | + # Assert |
| 1354 | + self.assertEqual(1, len(bot.record)) |
| 1355 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1356 | + |
| 1357 | + async def test_message_update_activity_teams_no_channel_data(self): |
| 1358 | + # Arrange |
| 1359 | + activity = Activity( |
| 1360 | + type=ActivityTypes.message_update, |
| 1361 | + channel_id=Channels.ms_teams, |
| 1362 | + ) |
| 1363 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1364 | + |
| 1365 | + # Act |
| 1366 | + bot = TestingTeamsActivityHandler() |
| 1367 | + await bot.on_turn(turn_context) |
| 1368 | + |
| 1369 | + # Assert |
| 1370 | + self.assertEqual(1, len(bot.record)) |
| 1371 | + self.assertEqual("on_message_update_activity", bot.record[0]) |
| 1372 | + |
| 1373 | + async def test_message_delete_activity_teams_message_soft_delete(self): |
| 1374 | + # Arrange |
| 1375 | + activity = Activity( |
| 1376 | + type=ActivityTypes.message_delete, |
| 1377 | + channel_data=TeamsChannelData(event_type="softDeleteMessage"), |
| 1378 | + channel_id=Channels.ms_teams, |
| 1379 | + ) |
| 1380 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1381 | + |
| 1382 | + # Act |
| 1383 | + bot = TestingTeamsActivityHandler() |
| 1384 | + await bot.on_turn(turn_context) |
| 1385 | + |
| 1386 | + # Assert |
| 1387 | + self.assertEqual(2, len(bot.record)) |
| 1388 | + self.assertEqual("on_message_delete_activity", bot.record[0]) |
| 1389 | + self.assertEqual("on_teams_message_soft_delete", bot.record[1]) |
| 1390 | + |
| 1391 | + async def test_message_delete_activity_teams_message_soft_delete_no_msteams(self): |
| 1392 | + # Arrange |
| 1393 | + activity = Activity( |
| 1394 | + type=ActivityTypes.message_delete, |
| 1395 | + channel_data=TeamsChannelData(event_type="softDeleteMessage"), |
| 1396 | + ) |
| 1397 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1398 | + |
| 1399 | + # Act |
| 1400 | + bot = TestingTeamsActivityHandler() |
| 1401 | + await bot.on_turn(turn_context) |
| 1402 | + |
| 1403 | + # Assert |
| 1404 | + self.assertEqual(1, len(bot.record)) |
| 1405 | + self.assertEqual("on_message_delete_activity", bot.record[0]) |
| 1406 | + |
| 1407 | + async def test_message_delete_activity_teams_no_channel_data(self): |
| 1408 | + # Arrange |
| 1409 | + activity = Activity( |
| 1410 | + type=ActivityTypes.message_delete, |
| 1411 | + channel_id=Channels.ms_teams, |
| 1412 | + ) |
| 1413 | + turn_context = TurnContext(SimpleAdapter(), activity) |
| 1414 | + |
| 1415 | + # Act |
| 1416 | + bot = TestingTeamsActivityHandler() |
| 1417 | + await bot.on_turn(turn_context) |
| 1418 | + |
| 1419 | + # Assert |
| 1420 | + self.assertEqual(1, len(bot.record)) |
| 1421 | + self.assertEqual("on_message_delete_activity", bot.record[0]) |
| 1422 | + |
1257 | 1423 | async def test_on_teams_meeting_participants_join_event(self): |
1258 | 1424 | # arrange |
1259 | 1425 | activity = Activity( |
|
0 commit comments