Skip to content
This repository was archived by the owner on Jan 5, 2026. It is now read-only.

Commit 578bee7

Browse files
authored
updating members added to cast to teams channel account (#495)
1 parent 92f7058 commit 578bee7

File tree

2 files changed

+29
-64
lines changed

2 files changed

+29
-64
lines changed

libraries/botbuilder-core/botbuilder/core/teams/teams_activity_handler.py

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33

44
from http import HTTPStatus
55
from botbuilder.schema import Activity, ActivityTypes, ChannelAccount
6+
from botbuilder.core import ActivityHandler, InvokeResponse, BotFrameworkAdapter
67
from botbuilder.core.turn_context import TurnContext
8+
from botbuilder.core.teams.teams_info import TeamsInfo
79
from botbuilder.core.teams.teams_helper import deserializer_helper
8-
from botbuilder.core import ActivityHandler, InvokeResponse, BotFrameworkAdapter
910
from botbuilder.schema.teams import (
1011
AppBasedLinkQuery,
1112
TeamInfo,
@@ -357,47 +358,43 @@ async def on_teams_members_added_dispatch_activity( # pylint: disable=unused-ar
357358
team_info: TeamInfo,
358359
turn_context: TurnContext,
359360
):
360-
"""
361+
361362
team_members = {}
362363
team_members_added = []
363364
for member in members_added:
364365
if member.additional_properties != {}:
365-
team_members_added.append(TeamsChannelAccount(member))
366+
team_members_added.append(
367+
deserializer_helper(TeamsChannelAccount, member)
368+
)
366369
else:
367370
if team_members == {}:
368-
result = await TeamsInfo.get_members_async(turn_context)
369-
team_members = { i.id : i for i in result }
371+
result = await TeamsInfo.get_members(turn_context)
372+
team_members = {i.id: i for i in result}
370373

371374
if member.id in team_members:
372375
team_members_added.append(member)
373376
else:
374-
newTeamsChannelAccount = TeamsChannelAccount(
377+
new_teams_channel_account = TeamsChannelAccount(
375378
id=member.id,
376-
name = member.name,
377-
aad_object_id = member.aad_object_id,
378-
role = member.role
379-
)
380-
team_members_added.append(newTeamsChannelAccount)
381-
382-
return await self.on_teams_members_added_activity(teams_members_added, team_info, turn_context)
383-
"""
384-
team_accounts_added = []
385-
for member in members_added:
386-
# TODO: fix this
387-
new_account_json = member.serialize()
388-
if "additional_properties" in new_account_json:
389-
del new_account_json["additional_properties"]
390-
member = TeamsChannelAccount(**new_account_json)
391-
team_accounts_added.append(member)
379+
name=member.name,
380+
aad_object_id=member.aad_object_id,
381+
role=member.role,
382+
)
383+
team_members_added.append(new_teams_channel_account)
384+
392385
return await self.on_teams_members_added_activity(
393-
team_accounts_added, turn_context
386+
team_members_added, team_info, turn_context
394387
)
395388

396-
async def on_teams_members_added_activity(
397-
self, teams_members_added: [TeamsChannelAccount], turn_context: TurnContext
389+
async def on_teams_members_added_activity( # pylint: disable=unused-argument
390+
self,
391+
teams_members_added: [TeamsChannelAccount],
392+
team_info: TeamInfo,
393+
turn_context: TurnContext,
398394
):
399395
teams_members_added = [
400-
ChannelAccount(**member.serialize()) for member in teams_members_added
396+
ChannelAccount().deserialize(member.serialize())
397+
for member in teams_members_added
401398
]
402399
return await super().on_members_added_activity(
403400
teams_members_added, turn_context
@@ -415,7 +412,9 @@ async def on_teams_members_removed_dispatch_activity( # pylint: disable=unused-
415412
new_account_json = member.serialize()
416413
if "additional_properties" in new_account_json:
417414
del new_account_json["additional_properties"]
418-
teams_members_removed.append(TeamsChannelAccount(**new_account_json))
415+
teams_members_removed.append(
416+
TeamsChannelAccount().deserialize(new_account_json)
417+
)
419418

420419
return await self.on_teams_members_removed_activity(
421420
teams_members_removed, turn_context
@@ -425,7 +424,8 @@ async def on_teams_members_removed_activity(
425424
self, teams_members_removed: [TeamsChannelAccount], turn_context: TurnContext
426425
):
427426
members_removed = [
428-
ChannelAccount(**member.serialize()) for member in teams_members_removed
427+
ChannelAccount().deserialize(member.serialize())
428+
for member in teams_members_removed
429429
]
430430
return await super().on_members_removed_activity(members_removed, turn_context)
431431

libraries/botbuilder-core/tests/teams/test_teams_activity_handler.py

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,6 @@ async def on_conversation_update_activity(self, turn_context: TurnContext):
3535
self.record.append("on_conversation_update_activity")
3636
return await super().on_conversation_update_activity(turn_context)
3737

38-
async def on_teams_members_added_activity(
39-
self, teams_members_added: [TeamsChannelAccount], turn_context: TurnContext
40-
):
41-
self.record.append("on_teams_members_added_activity")
42-
return await super().on_teams_members_added_activity(
43-
teams_members_added, turn_context
44-
)
45-
4638
async def on_teams_members_removed_activity(
4739
self, teams_members_removed: [TeamsChannelAccount], turn_context: TurnContext
4840
):
@@ -342,33 +334,6 @@ async def test_on_teams_team_renamed_activity(self):
342334
assert bot.record[0] == "on_conversation_update_activity"
343335
assert bot.record[1] == "on_teams_team_renamed_activity"
344336

345-
async def test_on_teams_members_added_activity(self):
346-
# arrange
347-
activity = Activity(
348-
type=ActivityTypes.conversation_update,
349-
channel_data={"eventType": "teamMemberAdded"},
350-
members_added=[
351-
ChannelAccount(
352-
id="123",
353-
name="test_user",
354-
aad_object_id="asdfqwerty",
355-
role="tester",
356-
)
357-
],
358-
channel_id=Channels.ms_teams,
359-
)
360-
361-
turn_context = TurnContext(NotImplementedAdapter(), activity)
362-
363-
# Act
364-
bot = TestingTeamsActivityHandler()
365-
await bot.on_turn(turn_context)
366-
367-
# Assert
368-
assert len(bot.record) == 2
369-
assert bot.record[0] == "on_conversation_update_activity"
370-
assert bot.record[1] == "on_teams_members_added_activity"
371-
372337
async def test_on_teams_members_removed_activity(self):
373338
# arrange
374339
activity = Activity(
@@ -385,7 +350,7 @@ async def test_on_teams_members_removed_activity(self):
385350
channel_id=Channels.ms_teams,
386351
)
387352

388-
turn_context = TurnContext(NotImplementedAdapter(), activity)
353+
turn_context = TurnContext(SimpleAdapter(), activity)
389354

390355
# Act
391356
bot = TestingTeamsActivityHandler()

0 commit comments

Comments
 (0)