async def test_roll_d66(bot, mocker): mocker.patch.object(dice, "roll_d66", return_value=23) dpytest.configure(bot) await dpytest.message("!roll d66") dpytest.verify_message("d66 = `23`")
async def twitch_cog(bot): """ setup any state specific to the execution of the given module.""" twitch_cog = TwitchAlert.TwitchAlert(bot) bot.add_cog(twitch_cog) await dpytest.empty_queue() dpytest.configure(bot) return twitch_cog
async def tf_cog(bot): tf_cog = TextFilter.TextFilter(bot) tf_cog.tf_database_manager.create_tables() bot.add_cog(tf_cog) dpytest.configure(bot) print("Tests starting") return tf_cog
async def test_init_cog_remove_tokens(bot): '''Test removing the exact number of tokens of a certain type''' dpytest.configure(bot) await dpytest.message("!i begin") dpytest.verify_message("Battle started. Now add tokens with !init add...") await dpytest.message("!i add 4 Goblin 6 Ogre 2 Troll 2 Vince McFighty") dpytest.verify_message( "Added 4 Goblin tokens.\nAdded 6 Ogre tokens.\nAdded 2 Troll tokens.\nAdded 2 Vince McFighty tokens.\n" ) await dpytest.message("!i remove 4 Ogre") dpytest.verify_message("Removed 4 Ogre tokens from the bag (2 left)") await dpytest.message("!i remove 4 Ogre") dpytest.verify_message( "You asked to remove 4 Ogre tokens, but only 2 were in the bag (0 left)" ) await dpytest.message("!i remove 4 Goblin") dpytest.verify_message("Removed all 4 Goblin tokens from the bag (0 left)") await dpytest.message("!i remove 2 Vince McFighty") dpytest.verify_message( "Removed all 2 Vince McFighty tokens from the bag (0 left)")
def bot(request, event_loop): intents = discord.Intents.default() intents.members = True b = commands.Bot("!", loop=event_loop, intents=intents) dpytest.configure(b, num_members=2) return b
async def test_login(): x = bot.createBot() dpytest.configure(x) loginMsg = fileController.loadLoginMsg() userMessage = loginMsg + "\n" + text_constants.ENTER_NAME_TEXT await dpytest.message("!login") dpytest.verify_message(userMessage)
def setUpClass(cls): cls.bot = Bot() cls.bot.add_cog(Testing(cls.bot)) cls.bot.add_cog(Inventory(cls.bot)) dpytest.configure(cls.bot) cls.loop = asyncio.get_event_loop() cls.loop.run_until_complete(cls.bot.connect_all()) cls.loop.run_until_complete(dpytest.message("Stand Arrow debug_clear"))
def setup_function(): """ setup any state specific to the execution of the given module.""" global base_cog bot = commands.Bot(command_prefix=KoalaBot.COMMAND_PREFIX) base_cog = BaseCog.BaseCog(bot) bot.add_cog(base_cog) dpytest.configure(bot) print("Tests starting")
async def test_ctx(): global utils_cog bot = commands.Bot(command_prefix=KoalaBot.COMMAND_PREFIX) utils_cog = TestUtilsCog(bot) bot.add_cog(utils_cog) dpytest.configure(bot) await dpytest.message(KoalaBot.COMMAND_PREFIX + "store_ctx") return utils_cog.get_last_ctx()
async def bot(event_loop): intents = discord.Intents.default() intents.members = True intents.guilds = True intents.messages = True b = commands.Bot(KoalaBot.COMMAND_PREFIX, loop=event_loop, intents=intents) await dpytest.empty_queue() dpytest.configure(b) return b
def bot(event_loop): intents = discord.Intents.default() intents.members = True bot = BSBot("!", loop=event_loop, intents=intents) bot.running_tests = True dpytest.configure(bot, num_guilds=2, num_channels=1, num_members=1) return bot
async def test_luck(bot, mocker): mocker.patch.object(dice, "roll_2d6", return_value=(3, 4, 7)) dpytest.configure(bot) await dpytest.message("!luck 8") dpytest.verify_message("**SUCCESS** 2d6(3+4) = `7` ≤ `8`") await dpytest.message("!luck 6") dpytest.verify_message("**FAILURE** 2d6(3+4) = `7` > `6`")
async def twitch_cog(): """ setup any state specific to the execution of the given module.""" bot = commands.Bot(command_prefix=KoalaBot.COMMAND_PREFIX) database_manager = KoalaDBManager.KoalaDBManager(DB_PATH, KoalaBot.DB_KEY) twitch_cog = TwitchAlert.TwitchAlert(bot, database_manager=database_manager) bot.add_cog(twitch_cog) await dpytest.empty_queue() dpytest.configure(bot) print("Tests starting") return twitch_cog
async def test_skill(bot, mocker): mocker.patch.object(dice, "roll_2d6", return_value=(1, 3, 4)) dpytest.configure(bot) await dpytest.message("!skill 4") dpytest.verify_message("**SUCCESS** 2d6(1+3) = `4` ≤ `4`") await dpytest.message("!skill 3") dpytest.verify_message("**FAILURE** 2d6(1+3) = `4` > `3`")
async def test_define_weapon(bot, mocker): mocker.patch.object(dice, "roll_d6", return_value=4) dpytest.configure(bot) await dpytest.message("!def weapon Stinger 2 2 3 3 4 5 6") dpytest.verify_message("Added weapon `Stinger` damage `[2, 2, 3, 3, 4, 5, 6]` ignore_armor=False") await dpytest.message("!damage stinger medium") # FIXME: Figure out how to test the embed content here dpytest.verify_embed(allow_text=True)
def setup_funsction(): """ setup any state specific to the execution of the given module.""" global role_colour_cog global utils_cog bot = commands.Bot(command_prefix=KoalaBot.COMMAND_PREFIX) role_colour_cog = ColourRole.ColourRole(bot) utils_cog = TestUtilsCog.TestUtilsCog(bot) bot.add_cog(role_colour_cog) bot.add_cog(utils_cog) dpytest.configure(bot) print("Tests starting")
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()
def testlos(): log.debug("Setting up Talos") tokens = dtalos.load_token_file(dtalos.TOKEN_FILE) testlos = dtalos.Talos(tokens=tokens) testlos.load_extensions(testlos.startup_extensions) dpytest.configure(testlos) yield testlos log.debug("Tearing down Talos") loop = testlos.loop loop.run_until_complete(testlos.close())
async def test_help(expected_embed): team_role_name = staff_role[0] # DCT-team modo_role_name = mods_role[0] # Moderator bot = commands.Bot(command_prefix='!') dpytest.configure(bot) guild = bot.guilds[0] # Guild object team_role = await guild.create_role(name=team_role_name) # Role object modo_role = await guild.create_role(name=modo_role_name) # Role object bot.role_dcteam = modo_role bot.role_modo = team_role
async def test_bot(): bot = ShinobuBot() dpytest.configure(bot) # Load any extensions/cogs you want to in here bot_channel = 165174405222236161 channel = bot.get_channel(bot_channel) await channel.send("Test Message") dpytest.verify_message("Test Message") await dpytest.message(":about") dpytest.verify_message("[Expected help output]")
async def base_cog(bot: commands.Bot): """ setup any state specific to the execution of the given module.""" with session_manager() as session: session.execute(delete(KoalaExtensions)) session.execute(delete(GuildExtensions)) session.commit() base_cog = BaseCog(bot) bot.add_cog(base_cog) await dpytest.empty_queue() dpytest.configure(bot) return base_cog
async def test_better(bot, mocker): mocker.patch.object(dice, "roll_2d6", return_value=(4, 3, 7)) dpytest.configure(bot) await dpytest.message("!better 6") dpytest.verify_message( "**SUCCESS** 2d6(4+3) = `7` > `6`. Increase advanced skill by 1") await dpytest.message("!better 7") dpytest.verify_message( "**FAILURE** 2d6(4+3) = `7` ≤ `7`. Advanced skill unchanged")
async def test_roll_d20(bot, mocker): mocker.patch.object(dice, "roll_d20", return_value=2) dpytest.configure(bot) await dpytest.message("!roll d20") dpytest.verify_message("d20 (2) = `2`") await dpytest.message("!roll 1d20") dpytest.verify_message("d20 (2) = `2`") await dpytest.message("!roll 1d20+6") dpytest.verify_message("d20 (2)+6 = `8`")
async def test_better_more(bot, mocker): mocker.patch.object(dice, "roll_2d6", return_value=(6, 6, 12)) dpytest.configure(bot) await dpytest.message("!better 13") dpytest.verify_message( "**SUCCESS** 2d6(6+6)+2d6(6+6) = `24`. Increase advanced skill by 1") mocker.patch.object(dice, "roll_2d6", side_effect=((6, 6, 12), (6, 5, 11))) await dpytest.message("!better 12") dpytest.verify_message( "**FAILURE** 2d6(6+6)+2d6(6+5) = `23`. Advanced skill unchanged")
def cog(bot): global vote_manager cog = Voting.Voting(bot, db_manager) db_manager.db_execute_commit("DROP TABLE Votes") db_manager.db_execute_commit("DROP TABLE VoteTargetRoles") db_manager.db_execute_commit("DROP TABLE VoteOptions") db_manager.db_execute_commit("DROP TABLE VoteSent") db_manager.insert_extension("Vote", 0, True, True) vote_manager = Voting.VoteManager(db_manager) bot.add_cog(cog) dpytest.configure(bot) print("Tests starting") return cog
async def test_restart_fail(): intents = discord.Intents.default() intents.members = True bot = commands.Bot(command_prefix='!', intents=intents) bot.gifs = [] bot.log = mock.Mock() bot.add_cog(Admin(bot)) dpytest.configure(bot) # MissingAnyRole is expected. # Test will pass if error "MissingAnyRole" is launched with pytest.raises(commands.MissingAnyRole): await dpytest.message('!restart') dpytest.verify_message("Nope.") # empty the queue await dpytest.empty_queue()
def testlos_m(request): log.debug("Setting up Module Talos") tokens = dtalos.load_token_file(dtalos.TOKEN_FILE) testlos = dtalos.Talos(tokens=tokens) testlos.database.verify_schema() testlos.load_extensions(testlos.startup_extensions) dpytest.configure(testlos) request.module.testlos = testlos yield testlos log.debug("Tearing down Module Talos") loop = testlos.loop loop.run_until_complete(testlos.close())
def se5tup_function(): """ setup any state specific to the execution of the given module.""" global base_cog, tf_cog, utils_cog bot = commands.Bot(command_prefix=KoalaBot.COMMAND_PREFIX) base_cog = BaseCog.BaseCog(bot) tf_cog = TextFilter.TextFilter(bot) tf_cog.tf_database_manager.create_tables() utils_cog = LastCtxCog.LastCtxCog(bot) bot.add_cog(base_cog) bot.add_cog(tf_cog) bot.add_cog(utils_cog) dpytest.configure(bot) print("Tests starting") return dpytest.get_config()
async def test_args_separator(bot): user = "******" command = "ban" channel = "Channel_0" dpytest.configure(bot) guild = bot.guilds[0] a, b, c = args_separator_for_log_function(guild, [channel, command, user]) assert a == user.lower() assert b == command.lower() assert c == channel.lower()
def bot(request, event_loop): b = commands.Bot("!", loop=event_loop) marks = request.function.pytestmark mark = None for mark in marks: if mark.name == "cogs": break if mark is not None: for extension in mark.args: b.load_extension("tests.internal." + extension) test.configure(b) return b
def testlos(): log.debug("Setting up Talos") tokens = dtalos.load_token_file(dtalos.TOKEN_FILE) testlos = dtalos.Talos(tokens=tokens) testlos.load_extensions(testlos.startup_extensions) dpytest.configure(testlos, 2, 2, 2) loop = testlos.loop loop.run_until_complete(testlos.init()) yield testlos log.debug("Tearing down Talos") loop = testlos.loop loop.run_until_complete(testlos.close())
def cog(bot): cog = Verification.Verification(bot, db_manager) bot.add_cog(cog) dpytest.configure(bot) db_manager.db_execute_commit("DROP TABLE verified_emails") db_manager.db_execute_commit("DROP TABLE non_verified_emails") db_manager.db_execute_commit("DROP TABLE to_re_verify") db_manager.db_execute_commit("DROP TABLE roles") db_manager.db_execute_commit("CREATE TABLE verified_emails (u_id, email)") db_manager.db_execute_commit("CREATE TABLE non_verified_emails (u_id, email, token)") db_manager.db_execute_commit("CREATE TABLE to_re_verify (u_id, r_id)") db_manager.db_execute_commit("CREATE TABLE roles (s_id, r_id, email_suffix)") db_manager.insert_extension("Verify", 0, True, True) print("Tests starting") return cog