8000 resolving merge conflict · rusty0209/botbuilder-python@fa49955 · GitHub
[go: up one dir, main page]

Skip to content

Commit fa49955

Browse files
committed
resolving merge conflict
1 parent 5f3d11f commit fa49955

File tree

6 files changed

+221
-68
lines changed

6 files changed

+221
-68
lines changed

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

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
TeamsChannelAccount,
1313
)
1414
from botframework.connector import Channels
15-
15+
import json
16+
from typing import List
1617

1718
class TeamsActivityHandler(ActivityHandler):
1819
async def on_turn(self, turn_context: TurnContext):
@@ -261,9 +262,9 @@ async def on_teams_task_module_submit( # pylint: disable=unused-argument
261262
raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
262263

263264
async def on_conversation_update_activity(self, turn_context: TurnContext):
265+
264266
if turn_context.activity.channel_id == Channels.ms_teams:
265267
channel_data = TeamsChannelData(**turn_context.activity.channel_data)
266-
267268
if turn_context.activity.members_added:
268269
return await self.on_teams_members_added_dispatch_activity(
269270
turn_context.activity.members_added, channel_data.team, turn_context
@@ -277,30 +278,28 @@ async def on_conversation_update_activity(self, turn_context: TurnContext):
277278
)
278279

279280
if channel_data:
280-
if channel_data.event_type == "channelCreated":
281+
if channel_data.eventType == "channelCreated":
281282
return await self.on_teams_channel_created_activity(
282-
channel_data.channel, channel_data.team, turn_context
283+
ChannelInfo(**channel_data.channel), channel_data.team, turn_context
283284
)
284-
if channel_data.event_type == "channelDeleted":
285+
if channel_data.eventType == "channelDeleted":
285286
return await self.on_teams_channel_deleted_activity(
286287
channel_data.channel, channel_data.team, turn_context
287288
)
288-
if channel_data.event_type == "channelRenamed":
289+
if channel_data.eventType == "channelRenamed":
289290
return await self.on_teams_channel_renamed_activity(
290291
channel_data.channel, channel_data.team, turn_context
291292
)
292-
if channel_data.event_type == "teamRenamed":
293-
return await self.on_teams_team_renamed_activity(
294-
channel_data.team, turn_context
295-
)
293+
if channel_data.eventType == "teamRenamed":
294+
return await self.on_teams_team_renamed_activity(channel_data.team, turn_context)
296295
return await super().on_conversation_update_activity(turn_context)
297296

298297
return await super().on_conversation_update_activity(turn_context)
299298

300299
async def on_teams_channel_created_activity( # pylint: disable=unused-argument
301300
self, channel_info: ChannelInfo, team_info: TeamInfo, turn_context: TurnContext
302301
):
303-
return
302+
return
304303

305304
async def on_teams_team_renamed_activity( # pylint: disable=unused-argument
306305
self, team_info: TeamInfo, turn_context: TurnContext
@@ -337,17 +336,24 @@ async def on_teams_members_added_dispatch_activity( # pylint: disable=unused-ar
337336
338337
return await self.on_teams_members_added_activity(teams_members_added, team_info, turn_context)
339338
"""
339+
team_accounts_added = []
340340
for member in members_added:
341341
new_account_json = member.serialize()
342+
<<<<<<< HEAD
342343
del new_account_json["additional_properties"]
344+
=======
345+
if "additional_properties" in new_account_json:
346+
del new_account_json["additional_properties"]
347+
>>>>>>> e682f38... saving unit tests so far
343348
member = TeamsChannelAccount(**new_account_json)
344-
return await self.on_teams_members_added_activity(members_added, turn_context)
349+
team_accounts_added.append(member)
350+
return await self.on_teams_members_added_activity(team_accounts_added, turn_context)
345351

346352
async def on_teams_members_added_activity(
347353
self, teams_members_added: [TeamsChannelAccount], turn_context: TurnContext
348354
):
349-
teams_members_added = [ChannelAccount(member) for member in teams_members_added]
350-
return super().on_members_added_activity(teams_members_added, turn_context)
355+
teams_members_added = [ ChannelAccount(**member.serialize()) for member in teams_members_added ]
356+
return await super().on_members_added_activity(teams_members_added, turn_context)
351357

352358
async def on_teams_members_removed_dispatch_activity( # pylint: disable=unused-argument
353359
self,
@@ -358,7 +364,12 @@ async def on_teams_members_removed_dispatch_activity( # pylint: disable=unused-
358364
teams_members_removed = []
359365
for member in members_removed:
360366
new_account_json = member.serialize()
367+
<<<<<<< HEAD
361368
del new_account_json["additional_properties"]
369+
=======
370+
if "additional_properties" in new_account_json:
371+
del new_account_json["additional_properties"]
372+
>>>>>>> e682f38... saving unit tests so far
362373
teams_members_removed.append(TeamsChannelAccount(**new_account_json))
363374

364375
return await self.on_teams_members_removed_activity(
@@ -368,8 +379,8 @@ async def on_teams_members_removed_dispatch_activity( # pylint: disable=unused-
368379
async def on_teams_members_removed_activity(
369380
self, teams_members_removed: [TeamsChannelAccount], turn_context: TurnContext
370381
):
371-
members_removed = [ChannelAccount(member) for member in teams_members_removed]
372-
return super().on_members_removed_activity(members_removed, turn_context)
382+
members_removed = [ChannelAccount(**member.serialize()) for member in teams_members_removed]
383+
return await super().on_members_removed_activity(members_removed, turn_context)
373384

374385
async def on_teams_channel_deleted_activity( # pylint: disable=unused-argument
375386
self, channel_info: ChannelInfo, team_info: TeamInfo, turn_context: TurnContext

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

Lines changed: 178 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -11,44 +11,36 @@
1111
MessageReaction,
1212
ResourceResponse,
1313
)
14-
14+
from botbuilder.schema.teams import (
15+
ChannelInfo,
16+
NotificationInfo,
17+
TeamInfo,
18+
TeamsChannelAccount,
19+
TeamsChannelData,
20+
TenantInfo,
21+
)
22+
from botframework.connector import Channels
1523

1624
class TestingTeamsActivityHandler(TeamsActivityHandler):
1725
def __init__(self):
1826
self.record: List[str] = []
1927

28+
async def on_conversation_update_activity(self, turn_context: TurnContext):
29+
self.record.append("on_conversation_update_activity")
30+
return await super().on_conversation_update_activity(turn_context)
31+
32+
async def on_teams_members_added_activity(self, teams_members_added: [TeamsChannelAccount], turn_context: TurnContext):
33+
self.record.append("on_teams_members_added_activity")
34+
return await super().on_teams_members_added_activity(teams_members_added, turn_context)
35+
36+
async def on_teams_members_removed_activity(self, teams_members_removed: [TeamsChannelAccount], turn_context: TurnContext):
37+
self.record.append("on_teams_members_removed_activity")
38+
return await super().on_teams_members_removed_activity(teams_members_removed, turn_context)
39+
2040
async def on_message_activity(self, turn_context: TurnContext):
2141
self.record.append("on_message_activity")
2242
return await super().on_message_activity(turn_context)
2343

24-
async def on_members_added_activity(
25-
self, members_added: ChannelAccount, turn_context: TurnContext
26-
):
27-
self.record.append("on_members_added_activity")
28-
return await super().on_members_added_activity(members_added, turn_context)
29-
30-
async def on_members_removed_activity(
31-
self, members_removed: ChannelAccount, turn_context: TurnContext
32-
):
33-
self.record.append("on_members_removed_activity")
34-
return await super().on_members_removed_activity(members_removed, turn_context)
35-
36-
async def on_message_reaction_activity(self, turn_context: TurnContext):
37-
self.record.append("on_message_reaction_activity")
38-
return await super().on_message_reaction_activity(turn_context)
39-
40-
async def on_reactions_added(
41-
self, message_reactions: List[MessageReaction], turn_context: TurnContext
42-
):
43-
self.record.append("on_reactions_added")
44-
return await super().on_reactions_added(message_reactions, turn_context)
45-
46-
async def on_reactions_removed(
47-
self, message_reactions: List[MessageReaction], turn_context: TurnContext
48-
):
49-
self.record.append("on_reactions_removed")
50-
return await super().on_reactions_removed(message_reactions, turn_context)
51-
5244
async def on_token_response_event(self, turn_context: TurnContext):
5345
self.record.append("on_token_response_event")
5446
return await super().on_token_response_event(turn_context)
@@ -60,7 +52,32 @@ async def on_event(self, turn_context: TurnContext):
6052
async def on_unrecognized_activity_type(self, turn_context: TurnContext):
6153
self.record.append("on_unrecognized_activity_type")
6254
return await super().on_unrecognized_activity_type(turn_context)
55+
56+
async def on_teams_channel_created_activity(
57+
self, channel_info: ChannelInfo, team_info: TeamInfo, turn_context: TurnContext
58+
):
59+
self.record.append("on_teams_channel_created_activity")
60+
return await super().on_teams_channel_created_activity(channel_info, team_info, turn_context)
61+
62+
async def on_teams_channel_renamed_activity(
63+
self, channel_info: ChannelInfo, team_info: TeamInfo, turn_context: TurnContext
64+
):
65+
self.record.append("on_teams_channel_renamed_activity")
66+
return await super().on_teams_channel_renamed_activity(channel_info, team_info, turn_context)
67+
68+
async def on_teams_channel_deleted_activity(
69+
self, channel_info: ChannelInfo, team_info: TeamInfo, turn_context: TurnContext
70+
):
71+
self.record.append("on_teams_channel_deleted_activity")
72+
return await super().on_teams_channel_renamed_activity(channel_info, team_info, turn_context)
73+
74+
async def on_teams_team_renamed_activity(self, team_info: TeamInfo, turn_context: TurnContext):
75+
self.record.append("on_teams_team_renamed_activity")
76+
return await super().on_teams_team_renamed_activity(team_info, turn_context)
6377

78+
async def on_invoke_activity(self, turn_context: TurnContext):
79+
self.record.append("on_invoke_activity")
80+
return await super().on_invoke_activity(turn_context)
6481

6582
class NotImplementedAdapter(BotAdapter):
6683
async def delete_activity(
@@ -76,18 +93,140 @@ async def send_activities(
7693
async def update_activity(self, context: TurnContext, activity: Activity):
7794
raise NotImplementedError()
7895

79-
8096
class TestTeamsActivityHandler(aiounittest.AsyncTestCase):
81-
async def test_message_reaction(self):
82-
# Note the code supports multiple adds and removes in the same activity though
83-
# a channel may decide to send separate activities for each. For example, Teams
84-
# sends separate activities each with a single add and a single remove.
97+
async def test_on_teams_channel_created_activity(self):
98+
#arrange
99+
activity = Activity(
100+
type = ActivityTypes.conversation_update,
101+
channel_data = {
102+
"eventType": "channelCreated",
103+
"channel": {
104+
"id": "asdfqwerty",
105+
"name" : "new_channel"
106+
}
107+
},
108+
channel_id = Channels.ms_teams
109+
)
110+
111+
turn_context = TurnContext(NotImplementedAdapter(), activity)
112+
113+
# Act
114+
bot = TestingTeamsActivityHandler()
115+
await bot.on_turn(turn_context)
116+
117+
# Assert
118+
assert len(bot.record) == 2
119+
assert bot.record[0] == "on_conversation_update_activity"
120+
assert bot.record[1] == "on_teams_channel_created_activity"
121+
122+
async def test_on_teams_channel_renamed_activity(self):
123+
#arrange
124+
activity = Activity(
125+
type = ActivityTypes.conversation_update,
126+
channel_data = {
127+
"eventType": "channelRenamed",
128+
"channel": {
129+
"id": "asdfqwerty",
130+
"name" : "new_channel"
131+
}
132+
},
133+
channel_id = Channels.ms_teams
134+
)
135+
136+
turn_context = TurnContext(NotImplementedAdapter(), activity)
137+
138+
# Act
139+
bot = TestingTeamsActivityHandler()
140+
await bot.on_turn(turn_context)
85141

86-
# Arrange
142+
# Assert
143+
assert len(bot.record) == 2
144+
assert bot.record[0] == "on_conversation_update_activity"
145+
assert bot.record[1] == "on_teams_channel_renamed_activity"
146+
147+
async def test_on_teams_channel_deleted_activity(self):
148+
#arrange
149+
activity = Activity(
150+
type = ActivityTypes.conversation_update,
151+
channel_data = {
152+
"eventType": "channelDeleted",
153+
"channel": {
154+
"id": "asdfqwerty",
155+
"name" : "new_channel"
156+
}
157+
},
158+
channel_id = Channels.ms_teams
159+
)
160+
161+
turn_context = TurnContext(NotImplementedAdapter(), activity)
162+
163+
# Act
164+
bot = TestingTeamsActivityHandler()
165+
await bot.on_turn(turn_context)
166+
167+
# Assert
168+
assert len(bot.record) == 2
169+
assert bot.record[0] == "on_conversation_update_activity"
170+
assert bot.record[1] == "on_teams_channel_deleted_activity"
171+
172+
async def test_on_teams_team_renamed_activity(self):
173+
#arrange
174+
activity = Activity(
175+
type = ActivityTypes.conversation_update,
176+
channel_data = {
177+
"eventType": "teamRenamed",
178+
"team": {
179+
"id": "team_id_1",
180+
"name" : "new_team_name"
181+
}
182+
},
183+
channel_id = Channels.ms_teams
184+
)
185+
186+
turn_context = TurnContext(NotImplementedAdapter(), activity)
187+
188+
# Act
189+
bot = TestingTeamsActivityHandler()
190+
await bot.on_turn(turn_context)
191+
192+
# Assert
193+
assert len(bot.record) == 2
194+
assert bot.record[0] == "on_conversation_update_activity"
195+
assert bot.record[1] == "on_teams_team_renamed_activity"
196+
197+
async def test_on_teams_members_added_activity(self):
198+
#arrange
199+
activity = Activity(
200+
type = ActivityTypes.conversation_update,
201+
channel_data = {
202+
"eventType": "teamMemberAdded"
203+
},
204+
members_added = [ChannelAccount(id="123", name="test_user", aad_object_id="asdfqwerty", role="tester")],
205+
channel_id = Channels.ms_teams
206+
)
207+
208+
turn_context = TurnContext(NotImplementedAdapter(), activity)
209+
210+
# Act
211+
bot = TestingTeamsActivityHandler()
212+
await bot.on_turn(turn_context)
213+
214+
# Assert
215+
assert len(bot.record) == 2
216+
assert bot.record[0] == "on_conversation_update_activity"
217+
assert bot.record[1] == "on_teams_members_added_activity"
218+
219+
async def test_on_teams_members_removed_activity(self):
220+
#arrange
87221
activity = Activity(
88-
type=ActivityTypes.message_reaction,
89-
reactions_added=[MessageReaction(type="sad")],
222+
type = ActivityTypes.conversation_update,
223+
channel_data = {
224+
"eventType": "teamMemberRemoved"
225+
},
226+
members_removed = [ChannelAccount(id="123", name="test_user", aad_object_id="asdfqwerty", role="tester")],
227+
channel_id = Channels.ms_teams
90228
)
229+
91230
turn_context = TurnContext(NotImplementedAdapter(), activity)
92231

93232
# Act
@@ -96,5 +235,5 @@ async def test_message_reaction(self):
96235

97236
# Assert
98237
assert len(bot.record) == 2
99-
assert bot.record[0] == "on_message_reaction_activity"
100-
assert bot.record[1] == "on_reactions_added"
238+
assert bot.record[0] == "on_conversation_update_activity"
239+
assert bot.record[1] == "on_teams_members_removed_activity"

libraries/botbuilder-schema/botbuilder/schema/_models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ def __init__(self, **kwargs):
611611
super(ChannelAccount, self).__init__(**kwargs)
612612
self.id = kwargs.get("id", None)
613613
self.name = kwargs.get("name", None)
614-
self.aad_object_id = kwargs.get("aad_object_id", None)
614+
self.aadObjectId = kwargs.get("aadObjectId", None)
615615
self.role = kwargs.get("role", None)
616616

617617

0 commit comments

Comments
 (0)
0