aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/cogs/test_duck_pond.py52
1 files changed, 35 insertions, 17 deletions
diff --git a/tests/bot/cogs/test_duck_pond.py b/tests/bot/cogs/test_duck_pond.py
index 79f11843b..31c7e9f89 100644
--- a/tests/bot/cogs/test_duck_pond.py
+++ b/tests/bot/cogs/test_duck_pond.py
@@ -1,35 +1,53 @@
import logging
import unittest
-from unittest.mock import MagicMock
from bot.cogs import duck_pond
-from tests.helpers import MockBot, MockMessage
+from tests.helpers import MockBot, MockMember, MockMessage, MockReaction, MockRole
class DuckPondTest(unittest.TestCase):
"""Tests the `DuckPond` cog."""
def setUp(self):
- """Adds the cog, a bot, and a message to the instance for usage in tests."""
+ """Adds the cog, a bot, and the mocks we'll need for our tests."""
self.bot = MockBot()
self.cog = duck_pond.DuckPond(bot=self.bot)
- self.msg = MockMessage(message_id=555, content='')
- self.msg.author.__str__ = MagicMock()
- self.msg.author.__str__.return_value = 'lemon'
- self.msg.author.bot = False
- self.msg.author.avatar_url_as.return_value = 'picture-lemon.png'
- self.msg.author.id = 42
- self.msg.author.mention = '@lemon'
- self.msg.channel.mention = "#lemonade-stand"
+ # Set up some roles
+ self.admin_role = MockRole(name="Admins", role_id=476190234653229056)
+ self.contrib_role = MockRole(name="Contributor", role_id=476190302659543061)
- def test_is_staff_correctly_identifies_staff(self):
- """A string decoding to numeric characters is a valid user ID."""
- pass
+ # Set up some users
+ self.admin_member = MockMember(roles=(self.admin_role,))
+ self.contrib_member = MockMember(roles=(self.contrib_role,))
+ self.no_role_member = MockMember()
- def test_has_green_checkmark(self):
- """A string decoding to numeric characters is a valid user ID."""
- pass
+ # Set up emojis
+ self.checkmark_emoji = "✅"
+ self.thumbs_up_emoji = "👍"
+
+ # Set up reactions
+ self.checkmark_reaction = MockReaction(emoji=self.checkmark_emoji)
+ self.thumbs_up_reaction = MockReaction(emoji=self.thumbs_up_emoji)
+
+ # Set up a messages
+ self.checkmark_message = MockMessage(reactions=(self.checkmark_reaction,))
+ self.thumbs_up_message = MockMessage(reactions=(self.thumbs_up_reaction,))
+ self.no_reaction_message = MockMessage()
+
+ def test_is_staff_correctly_identifies_staff(self):
+ """Test that is_staff correctly identifies a staff member."""
+ with self.subTest():
+ self.assertTrue(duck_pond.DuckPond.is_staff(self.admin_member))
+ self.assertFalse(duck_pond.DuckPond.is_staff(self.contrib_member))
+ self.assertFalse(duck_pond.DuckPond.is_staff(self.no_role_member))
+
+ def test_has_green_checkmark_correctly_identifies_messages(self):
+ """Test that has_green_checkmark recognizes messages with checkmarks."""
+ with self.subTest():
+ self.assertTrue(duck_pond.DuckPond.has_green_checkmark(self.checkmark_message))
+ self.assertFalse(duck_pond.DuckPond.has_green_checkmark(self.thumbs_up_message))
+ self.assertFalse(duck_pond.DuckPond.has_green_checkmark(self.no_reaction_message))
def test_count_custom_duck_emojis(self):
"""A string decoding to numeric characters is a valid user ID."""