diff options
-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 |