Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 158 additions & 11 deletions libraries/botbuilder-core/tests/teams/test_teams_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,26 @@

from botbuilder.core import TurnContext, MessageFactory
from botbuilder.core.teams import TeamsInfo, TeamsActivityHandler
from botbuilder.schema import Activity
from botbuilder.schema.teams import TeamsChannelData, TeamInfo
from botframework.connector import Channels
from botbuilder.schema import (
Activity,
ChannelAccount,
ConversationAccount,
)
from simple_adapter_with_create_conversation import SimpleAdapterWithCreateConversation

ACTIVITY = Activity(
id="1234",
type="message",
text="test",
from_property=ChannelAccount(id="user", name="User Name"),
recipient=ChannelAccount(id="bot", name="Bot Name"),
conversation=ConversationAccount(id="convo", name="Convo Name"),
channel_data={"channelData": {}},
channel_id="UnitTest",
locale="en-us",
service_url="https://example.org",
)


class TestTeamsInfo(aiounittest.AsyncTestCase):
async def test_send_message_to_teams_channels_without_activity(self):
Expand Down Expand Up @@ -41,17 +56,149 @@ def create_conversation():
call_create_conversation=create_conversation
)

activity = Activity(
type="message",
text="test_send_message_to_teams_channel",
channel_id=Channels.ms_teams,
service_url="https://example.org",
channel_data=TeamsChannelData(team=TeamInfo(id="team-id")),
)
turn_context = TurnContext(adapter, activity)
turn_context = TurnContext(adapter, ACTIVITY)
handler = TestTeamsActivityHandler()
await handler.on_turn(turn_context)

async def test_send_message_to_teams_channels_without_turn_context(self):
try:
await TeamsInfo.send_message_to_teams_channel(
None, ACTIVITY, "channelId123"
)
except ValueError:
pass
else:
assert False, "should have raise ValueError"

async def test_send_message_to_teams_channels_without_teams_channel_id(self):
def create_conversation():
pass

adapter = SimpleAdapterWithCreateConversation(
call_create_conversation=create_conversation
)

turn_context = TurnContext(adapter, ACTIVITY)

try:
await TeamsInfo.send_message_to_teams_channel(turn_context, ACTIVITY, "")
except ValueError:
pass
else:
assert False, "should have raise ValueError"

async def test_send_message_to_teams_channel_works(self):
adapter = SimpleAdapterWithCreateConversation()

turn_context = TurnContext(adapter, ACTIVITY)
result = await TeamsInfo.send_message_to_teams_channel(
turn_context, ACTIVITY, "teamId123"
)
assert result[0].activity_id == "new_conversation_id"
assert result[1] == "reference123"

async def test_get_team_details_works_without_team_id(self):
adapter = SimpleAdapterWithCreateConversation()
ACTIVITY.channel_data = {}
turn_context = TurnContext(adapter, ACTIVITY)
result = TeamsInfo.get_team_id(turn_context)

assert result == ""

async def test_get_team_details_works_with_team_id(self):
adapter = SimpleAdapterWithCreateConversation()
team_id = "teamId123"
ACTIVITY.channel_data = {"team": {"id": team_id}}
turn_context = TurnContext(adapter, ACTIVITY)
result = TeamsInfo.get_team_id(turn_context)

assert result == team_id

async def test_get_team_details_without_team_id(self):
def create_conversation():
pass

adapter = SimpleAdapterWithCreateConversation(
call_create_conversation=create_conversation
)

turn_context = TurnContext(adapter, ACTIVITY)

try:
await TeamsInfo.get_team_details(turn_context)
except TypeError:
pass
else:
assert False, "should have raise TypeError"

async def test_get_team_channels_without_team_id(self):
def create_conversation():
pass

adapter = SimpleAdapterWithCreateConversation(
call_create_conversation=create_conversation
)

turn_context = TurnContext(adapter, ACTIVITY)

try:
await TeamsInfo.get_team_channels(turn_context)
except TypeError:
pass
else:
assert False, "should have raise TypeError"

async def test_get_paged_team_members_without_team_id(self):
def create_conversation():
pass

adapter = SimpleAdapterWithCreateConversation(
call_create_conversation=create_conversation
)

turn_context = TurnContext(adapter, ACTIVITY)

try:
await TeamsInfo.get_paged_team_members(turn_context)
except TypeError:
pass
else:
assert False, "should have raise TypeError"

async def test_get_team_members_without_team_id(self):
def create_conversation():
pass

adapter = SimpleAdapterWithCreateConversation(
call_create_conversation=create_conversation
)

turn_context = TurnContext(adapter, ACTIVITY)

try:
await TeamsInfo.get_team_member(turn_context)
except TypeError:
pass
else:
assert False, "should have raise TypeError"

async def test_get_team_members_without_member_id(self):
def create_conversation():
pass

adapter = SimpleAdapterWithCreateConversation(
call_create_conversation=create_conversation
)

turn_context = TurnContext(adapter, ACTIVITY)

try:
await TeamsInfo.get_team_member(turn_context, "teamId123")
except TypeError:
pass
else:
assert False, "should have raise TypeError"


class TestTeamsActivityHandler(TeamsActivityHandler):
async def on_turn(self, turn_context: TurnContext):
Expand Down