async def test_handle_raised_forbidden(): # Given clientside_error_message = "The bot has insufficient permissions to do this." message_provider = MagicMock(MessageProvider) message_provider.bot_missing_access.return_value = clientside_error_message route_handler = _route_handler(message_provider=message_provider) event = DiscordEvent(command=DiscordCommand(command_name="ping", )) mock_route = AsyncMock(Route) mock_route.call.side_effect = discord.Forbidden( MagicMock(aiohttp.ClientResponse), "Missing Access.") route_definition = RouteDefinition( route=mock_route, command="ping", ) # When response = await route_handler.handle(event, route_definition) # Then assert response.is_ephemeral assert response.content == clientside_error_message
def _make_event(guild_id: int = -1, options: typing.Dict = None) -> DiscordEvent: if options is None: options = {} return DiscordEvent(command=DiscordCommand( command_name="admin", subcommand_name="remove-management-role", options=options), guild_id=guild_id, member=DiscordMember())
def _make_event(guild_id: int = -1, options: typing.Dict = None) -> DiscordEvent: if options is None: options = {} return DiscordEvent(command=DiscordCommand( command_id=-1, command_name="admin", subcommand_name="does-not-matter", options=options), guild_id=guild_id, member=DiscordMember())
def from_event(event_source: Dict) -> DiscordEvent: if event_source['type'] == InteractionType.PING: return DiscordEvent(command=DiscordCommand(command_name="ping"), ) else: channel_id = int(event_source['channel_id']) guild_id = int(event_source['guild_id']) command = _command_from_data(event_source['data']) member = _member_from_data(event_source['member']) return DiscordEvent(channel_id=channel_id, guild_id=guild_id, command=command, member=member)
def _make_event(guild_id: int = -1, options: typing.Dict = None, discord_member: DiscordMember = None, channel_id: int = -1): if options is None: options = {} if discord_member is None: discord_member = DiscordMember() return DiscordEvent( guild_id=guild_id, channel_id=channel_id, command=DiscordCommand( command_name="manage", subcommand_name="edit-guess", options=options, ), member=discord_member )
async def test_handle(): # Given route_handler = _route_handler() event = DiscordEvent(command=DiscordCommand(command_name="ping", )) response = DiscordResponse.ephemeral_channel_message( "You handled it very well!") mock_route = AsyncMock(Route) mock_route.call.return_value = response route_definition = RouteDefinition( route=mock_route, command="ping", ) # When response = await route_handler.handle(event, route_definition) # Then assert response == response