def test_fire_registered_event_cancel(self): bot = Bot("app_name", "version") bot.guild_logs_file = self.LOG_PATH on_guild_remove = AsyncMock() on_guild_remove.__name__ = "on_guild_remove" on_guild_remove.return_value = False bot.register_event(on_guild_remove) guild = AsyncMock() self._await(bot.on_guild_remove(guild)) on_guild_remove.assert_awaited_once_with(guild) self.assertFalse(path.exists(self.LOG_PATH))
def test_fire_registered_event(self): bot = Bot("app_name", "version") bot.guild_logs_file = self.LOG_PATH on_guild_join = AsyncMock() on_guild_join.__name__ = "on_guild_join" on_guild_join.return_value = True bot.register_event(on_guild_join) guild = AsyncMock() self._await(bot.on_guild_join(guild)) on_guild_join.assert_awaited_once_with(guild) self.assertTrue(path.exists(self.LOG_PATH))
def test_no_log(self, client_mock): bot = Bot("app_name", "version") bot.guild_logs_file = None ex = Exception("test") client_mock.change_presence.side_effect = ex try: with patch("discord.Game") as game_mock: game_mock.return_value = "activity" self._await(bot.on_ready()) except Exception as error: self.assertEqual(ex, error) client_mock.change_presence.assert_called_with( activity="activity", status=discord.Status.online)
def test_fire_registered_event_cancel(self, client_mock): bot = Bot("app_name", "version") bot.guild_logs_file = None on_ready = AsyncMock() on_ready.__name__ = "on_ready" on_ready.return_value = False bot.register_event(on_ready) ex = Exception("test") client_mock.change_presence.side_effect = ex try: with patch("discord.Game") as game_mock: game_mock.return_value = "activity" self._await(bot.on_ready()) except Exception as error: self.assertEqual(ex, error) on_ready.assert_awaited_once() client_mock.change_presence.assert_not_called()
def test_log_exists(self, client_mock): bot = Bot("app_name", "version") bot.guild_logs_file = self.LOG_PATH client_mock.change_presence.side_effect = Exception("test") client_mock.guilds = [MagicMock()] client_mock.guilds[0].id = "id1" client_mock.guilds[0].name = "name1" with open(self.LOG_PATH, encoding="utf-8", mode="w") as f: f.write("test") try: with patch("discord.Game") as game_mock: game_mock.return_value = "activity" self._await(bot.on_ready()) except: pass with open(self.LOG_PATH, encoding="utf-8", mode="r") as f: self.assertEqual(f"test", f.read())
def test_log(self): bot = Bot("app_name", "version") bot.guild_logs_file = self.LOG_PATH guild1 = AsyncMock() guild1.id = "id1" guild1.name = "name1" guild2 = AsyncMock() guild2.id = "id2" guild2.name = "name2" d = datetime.now() self._await(bot.on_guild_remove(guild1)) self._await(bot.on_guild_remove(guild2)) self.assertTrue(path.exists(self.LOG_PATH)) with open(self.LOG_PATH, encoding="utf-8", mode="r") as f: self.assertEqual( f"{d:%Y-%m-%d %H:%M} -id1: name1\n" f"{d:%Y-%m-%d %H:%M} -id2: name2\n", f.read(), )
def test_log_create(self, client_mock): bot = Bot("app_name", "version") bot.guild_logs_file = self.LOG_PATH client_mock.change_presence.side_effect = Exception("test") client_mock.guilds = [MagicMock(), MagicMock()] client_mock.guilds[0].id = "id1" client_mock.guilds[0].name = "name1" client_mock.guilds[1].id = "id2" client_mock.guilds[1].name = "name2" d = datetime.now() try: with patch("discord.Game") as game_mock: game_mock.return_value = "activity" self._await(bot.on_ready()) except: pass with open(self.LOG_PATH, encoding="utf-8", mode="r") as f: self.assertEqual( f"{d:%Y-%m-%d %H:%M} +id1: name1\n" f"{d:%Y-%m-%d %H:%M} +id2: name2\n", f.read(), )
def test_no_log(self): bot = Bot("app_name", "version") bot.guild_logs_file = None guild = AsyncMock() self._await(bot.on_guild_join(guild)) self.assertFalse(path.exists(self.LOG_PATH))