diff options
author | 2023-07-09 09:44:30 +0100 | |
---|---|---|
committer | 2023-07-09 09:44:30 +0100 | |
commit | a5b8099a7b4da288058d852a8f303a46154fb6bc (patch) | |
tree | 4dd957019310b9760ea2f38949b1f02e2edacdb8 | |
parent | Optimise startup time (#2662) (diff) |
Fix some test warnings (#2675)
* Fix test warnings
* Remove unnecessary event_loop parameters
This is not necessary as the current event loop will be used which is the same as self.bot.loop. Removing these should slightly improve test speed as the mock for self.bot.loop doesn't need to be created.
-rw-r--r-- | bot/exts/backend/logging.py | 2 | ||||
-rw-r--r-- | bot/exts/info/codeblock/_cog.py | 2 | ||||
-rw-r--r-- | bot/exts/info/doc/_batch_parser.py | 3 | ||||
-rw-r--r-- | bot/exts/moderation/incidents.py | 6 | ||||
-rw-r--r-- | bot/exts/moderation/watchchannels/_watchchannel.py | 7 | ||||
-rw-r--r-- | tests/bot/exts/backend/test_logging.py | 5 | ||||
-rw-r--r-- | tests/bot/exts/moderation/test_incidents.py | 8 | ||||
-rw-r--r-- | tests/helpers.py | 10 |
8 files changed, 26 insertions, 17 deletions
diff --git a/bot/exts/backend/logging.py b/bot/exts/backend/logging.py index eba9f3c74..331a7835e 100644 --- a/bot/exts/backend/logging.py +++ b/bot/exts/backend/logging.py @@ -15,7 +15,7 @@ class Logging(Cog): def __init__(self, bot: Bot): self.bot = bot - scheduling.create_task(self.startup_greeting(), event_loop=self.bot.loop) + scheduling.create_task(self.startup_greeting()) async def startup_greeting(self) -> None: """Announce our presence to the configured devlog channel.""" diff --git a/bot/exts/info/codeblock/_cog.py b/bot/exts/info/codeblock/_cog.py index 24d956b9f..6f095a2d0 100644 --- a/bot/exts/info/codeblock/_cog.py +++ b/bot/exts/info/codeblock/_cog.py @@ -114,7 +114,7 @@ class CodeBlockCog(Cog, name="Code Block"): bot_message = await message.channel.send(f"Hey {message.author.mention}!", embed=embed) self.codeblock_message_ids[message.id] = bot_message.id - scheduling.create_task(wait_for_deletion(bot_message, (message.author.id,)), event_loop=self.bot.loop) + scheduling.create_task(wait_for_deletion(bot_message, (message.author.id,))) # Increase amount of codeblock correction in stats self.bot.stats.incr("codeblock_corrections") diff --git a/bot/exts/info/doc/_batch_parser.py b/bot/exts/info/doc/_batch_parser.py index 79bfb5482..4dfed205a 100644 --- a/bot/exts/info/doc/_batch_parser.py +++ b/bot/exts/info/doc/_batch_parser.py @@ -30,8 +30,7 @@ class StaleInventoryNotifier: def __init__(self): self._init_task = scheduling.create_task( self._init_channel(), - name="StaleInventoryNotifier channel init", - event_loop=bot.instance.loop, + name="StaleInventoryNotifier channel init" ) self._warned_urls = set() diff --git a/bot/exts/moderation/incidents.py b/bot/exts/moderation/incidents.py index 7fb8cac5a..2aecf787a 100644 --- a/bot/exts/moderation/incidents.py +++ b/bot/exts/moderation/incidents.py @@ -319,10 +319,10 @@ class Incidents(Cog): self.bot = bot self.incidents_webhook = None - scheduling.create_task(self.fetch_webhook(), event_loop=self.bot.loop) + scheduling.create_task(self.fetch_webhook()) self.event_lock = asyncio.Lock() - self.crawl_task = scheduling.create_task(self.crawl_incidents(), event_loop=self.bot.loop) + self.crawl_task = scheduling.create_task(self.crawl_incidents()) async def fetch_webhook(self) -> None: """Fetch the incidents webhook object, so we can post message link embeds to it.""" @@ -416,7 +416,7 @@ class Incidents(Cog): return payload.message_id == incident.id coroutine = self.bot.wait_for("raw_message_delete", check=check, timeout=timeout) - return scheduling.create_task(coroutine, event_loop=self.bot.loop) + return scheduling.create_task(coroutine) async def process_event(self, reaction: str, incident: discord.Message, member: discord.Member) -> None: """ diff --git a/bot/exts/moderation/watchchannels/_watchchannel.py b/bot/exts/moderation/watchchannels/_watchchannel.py index 5250e64d9..57a64f9d0 100644 --- a/bot/exts/moderation/watchchannels/_watchchannel.py +++ b/bot/exts/moderation/watchchannels/_watchchannel.py @@ -169,7 +169,7 @@ class WatchChannel(metaclass=CogABCMeta): """Queues up messages sent by watched users.""" if msg.author.id in self.watched_users: if not self.consuming_messages: - self._consume_task = scheduling.create_task(self.consume_messages(), event_loop=self.bot.loop) + self._consume_task = scheduling.create_task(self.consume_messages()) self.log.trace(f"Received message: {msg.content} ({len(msg.attachments)} attachments)") self.message_queue[msg.author.id][msg.channel.id].append(msg) @@ -199,10 +199,7 @@ class WatchChannel(metaclass=CogABCMeta): if self.message_queue: self.log.trace("Channel queue not empty: Continuing consuming queues") - self._consume_task = scheduling.create_task( - self.consume_messages(delay_consumption=False), - event_loop=self.bot.loop, - ) + self._consume_task = scheduling.create_task(self.consume_messages(delay_consumption=False)) else: self.log.trace("Done consuming messages.") diff --git a/tests/bot/exts/backend/test_logging.py b/tests/bot/exts/backend/test_logging.py index 466f207d9..3a41220ad 100644 --- a/tests/bot/exts/backend/test_logging.py +++ b/tests/bot/exts/backend/test_logging.py @@ -3,7 +3,7 @@ from unittest.mock import patch from bot import constants from bot.exts.backend.logging import Logging -from tests.helpers import MockBot, MockTextChannel +from tests.helpers import MockBot, MockTextChannel, no_create_task class LoggingTests(unittest.IsolatedAsyncioTestCase): @@ -11,7 +11,8 @@ class LoggingTests(unittest.IsolatedAsyncioTestCase): def setUp(self): self.bot = MockBot() - self.cog = Logging(self.bot) + with no_create_task(): + self.cog = Logging(self.bot) self.dev_log = MockTextChannel(id=1234, name="dev-log") @patch("bot.exts.backend.logging.DEBUG_MODE", False) diff --git a/tests/bot/exts/moderation/test_incidents.py b/tests/bot/exts/moderation/test_incidents.py index bb337aeba..61f64da44 100644 --- a/tests/bot/exts/moderation/test_incidents.py +++ b/tests/bot/exts/moderation/test_incidents.py @@ -17,7 +17,7 @@ from bot.utils.time import TimestampFormats, discord_timestamp from tests.base import RedisTestCase from tests.helpers import ( MockAsyncWebhook, MockAttachment, MockBot, MockMember, MockMessage, MockReaction, MockRole, MockTextChannel, - MockUser + MockUser, no_create_task ) CURRENT_TIME = datetime.datetime(2022, 1, 1, tzinfo=datetime.UTC) @@ -306,7 +306,8 @@ class TestIncidents(RedisTestCase): Note that this will not schedule `crawl_incidents` in the background, as everything is being mocked. The `crawl_task` attribute will end up being None. """ - self.cog_instance = incidents.Incidents(MockBot()) + with no_create_task(): + self.cog_instance = incidents.Incidents(MockBot()) @patch("asyncio.sleep", AsyncMock()) # Prevent the coro from sleeping to speed up the test @@ -458,7 +459,8 @@ class TestMakeConfirmationTask(TestIncidents): If this function begins to fail, first check that `created_check` is being retrieved correctly. It should be the function that is built locally in the tested method. """ - self.cog_instance.make_confirmation_task(MockMessage(id=123)) + with no_create_task(): + self.cog_instance.make_confirmation_task(MockMessage(id=123)) self.cog_instance.bot.wait_for.assert_called_once() created_check = self.cog_instance.bot.wait_for.call_args.kwargs["check"] diff --git a/tests/helpers.py b/tests/helpers.py index 26ac42697..580848c25 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -6,6 +6,7 @@ import logging import unittest.mock from asyncio import AbstractEventLoop from collections.abc import Iterable +from contextlib import contextmanager from functools import cached_property import discord @@ -664,3 +665,12 @@ class MockAsyncWebhook(CustomMockMixin, unittest.mock.MagicMock): """ spec_set = webhook_instance additional_spec_asyncs = ("send", "edit", "delete", "execute") + +@contextmanager +def no_create_task(): + def side_effect(coro, *_, **__): + coro.close() + + with unittest.mock.patch("pydis_core.utils.scheduling.create_task") as create_task: + create_task.side_effect = side_effect + yield |