async def test_get_non_bot_members(): test_config = dpytest.get_config() client = test_config.client guild = test_config.guilds[0] assert len(IntroCog.get_non_bot_members(guild)) == 1, [ non_bot_member.name for non_bot_member in IntroCog.get_non_bot_members(guild) ] await dpytest.member_join() assert len(IntroCog.get_non_bot_members(guild)) == 2, [ non_bot_member.name for non_bot_member in IntroCog.get_non_bot_members(guild) ] for i in range(3): await dpytest.member_join(name=f'TestUser{str(i)}') assert len(IntroCog.get_non_bot_members(guild)) == 5, [ non_bot_member.name for non_bot_member in IntroCog.get_non_bot_members(guild) ] print([ str(non_bot_member) + " " + str(non_bot_member.bot) for non_bot_member in IntroCog.get_non_bot_members(guild) ]) await dpytest.kick_callback(guild, guild.get_member(client.user.id)) assert len(IntroCog.get_non_bot_members(guild)) == 5, [ non_bot_member.name for non_bot_member in IntroCog.get_non_bot_members(guild) ] print([ str(non_bot_member) + " " + str(non_bot_member.bot) for non_bot_member in IntroCog.get_non_bot_members(guild) ])
async def test_on_member_join(): test_config = dpytest.get_config() client = test_config.client guild = dpytest.back.make_guild('TestMemberJoin', id_num=1234) test_config.guilds.append(guild) await dpytest.member_join(1, client.user) await asyncio.sleep(0.25) welcome_message = IntroCog.get_guild_welcome_message(guild.id) await dpytest.member_join(1) dpytest.verify_message(welcome_message) DBManager.update_guild_welcome_message(guild.id, 'This is an updated welcome message.') await asyncio.sleep(0.25) welcome_message = IntroCog.get_guild_welcome_message(guild.id) await dpytest.member_join(1) dpytest.verify_message(welcome_message)
async def test_update_welcome_message_too_long(): import random, string guild = dpytest.get_config().guilds[0] old_message = IntroCog.get_guild_welcome_message(guild.id) new_message = "".join(random.choice(string.ascii_letters) for _ in range(1800)) msg_mock = dpytest.back.make_message('y', dpytest.get_config().members[0], dpytest.get_config().channels[0]) with mock.patch('cogs.IntroCog.wait_for_message', mock.AsyncMock(return_value=msg_mock)): await dpytest.message(KoalaBot.COMMAND_PREFIX + "update_welcome_message " + new_message) dpytest.verify_message("Your welcome message is too long to send, sorry. The maximum character limit is 1600.") dpytest.verify_message(assert_nothing=True) assert DBManager.fetch_guild_welcome_message(guild.id) != new_message
async def test_wait_for_message(utils_cog): bot = dpytest.get_config().client await dpytest.message(KoalaBot.COMMAND_PREFIX + "store_ctx") ctx = utils_cog.get_last_ctx() import threading t2 = threading.Timer(interval=1.0, function=dpytest.message, args=("y")) t2.start() fut = IntroCog.wait_for_message(bot, ctx) t2.join() assert fut, dpytest.sent_queue
def setup_function(): """ setup any state specific to the execution of the given module.""" global intro_cog, utils_cog bot = commands.Bot(command_prefix=KoalaBot.COMMAND_PREFIX) utils_cog = TestUtilsCog(bot) intro_cog = IntroCog.IntroCog(bot) bot.add_cog(intro_cog) bot.add_cog(utils_cog) dpytest.configure(bot) print("Tests starting") return dpytest.get_config()
async def test_cancel_update_welcome_message(): guild = dpytest.get_config().guilds[0] old_message = IntroCog.get_guild_welcome_message(guild.id) new_message = "this is a non default message" msg_mock = dpytest.back.make_message('n', dpytest.get_config().members[0], dpytest.get_config().channels[0]) with mock.patch('cogs.IntroCog.wait_for_message', mock.AsyncMock(return_value=msg_mock)): await dpytest.message(KoalaBot.COMMAND_PREFIX + "update_welcome_message " + new_message) dpytest.verify_message(f"""Your current welcome message is:\n\r{old_message}""") dpytest.verify_message(f"""Your new welcome message will be:\n\r{new_message}\n\r{IntroCog.BASE_LEGAL_MESSAGE}""" + """\n\rWould you like to update the message? Y/N?""") dpytest.verify_message("Okay, I won't update the welcome message then.") dpytest.verify_message(assert_nothing=True) assert DBManager.fetch_guild_welcome_message(guild.id) != new_message
def intro_cog(bot): intro_cog = IntroCog.IntroCog(bot) bot.add_cog(intro_cog) dpytest.configure(bot) print("Tests starting") return intro_cog
async def test_view_welcome_message(): guild = dpytest.get_config().guilds[0] old_message = IntroCog.get_guild_welcome_message(guild.id) await dpytest.message(KoalaBot.COMMAND_PREFIX + "welcomeViewMsg ") dpytest.verify_message(f"""Your current welcome message is:\n\r{old_message}""")
async def test_get_guild_welcome_message(guild_id, expected): val = IntroCog.get_guild_welcome_message(guild_id) assert val == f"{expected}\r\n{IntroCog.BASE_LEGAL_MESSAGE}", val