diff options
author | 2019-11-13 17:29:09 +0100 | |
---|---|---|
committer | 2019-11-13 17:29:09 +0100 | |
commit | 7f4829e9fab007690d48188f499bfcc1a7baa437 (patch) | |
tree | b402adeeaafd196fbe7260a02766f432526cf91e /tests/helpers.py | |
parent | Prevent setting unknown attributes on d.py mocks (diff) |
Prevent await warnings for MockBot's create_task
Previously, the coroutine object passed to `MockBot.loop.create_task`
would trigger a `RuntimeWarning` for not being awaited as we do not
actually create a task for it. To prevent these warnings, coroutine
objects passed will now automatically be closed.
Diffstat (limited to 'tests/helpers.py')
-rw-r--r-- | tests/helpers.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tests/helpers.py b/tests/helpers.py index 35f2c288c..8a14aeef4 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -227,7 +227,8 @@ class MockMember(CustomMockMixin, unittest.mock.Mock, ColourMixin, HashableMixin if roles: self.roles.extend(roles) - self.mention = f"@{self.name}" + if 'mention' not in kwargs: + self.mention = f"@{self.name}" # Create a Bot instance to get a realistic MagicMock of `discord.ext.commands.Bot` @@ -251,6 +252,11 @@ class MockBot(CustomMockMixin, unittest.mock.MagicMock): # is technically incorrect, since it's a regular def.) self.wait_for = AsyncMock() + # Since calling `create_task` on our MockBot does not actually schedule the coroutine object + # as a task in the asyncio loop, this `side_effect` calls `close()` on the coroutine object + # to prevent "has not been awaited"-warnings. + self.loop.create_task.side_effect = lambda coroutine: coroutine.close() + # Create a TextChannel instance to get a realistic MagicMock of `discord.TextChannel` channel_data = { |