aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2020-06-24 15:40:46 +0300
committerGravatar ks129 <[email protected]>2020-06-24 15:40:46 +0300
commit0c9fc3a1bbaf590d7ccf8737ffffcfb4b1b5b1b8 (patch)
tree50e0acdd0abe6d044f343dee7a3ed813b01414ae /tests
parentRemove unnecessary `textwrap.dedent` in `notify_infraction` (diff)
Reorder tests order to match with original file
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/cogs/moderation/test_utils.py130
1 files changed, 65 insertions, 65 deletions
diff --git a/tests/bot/cogs/moderation/test_utils.py b/tests/bot/cogs/moderation/test_utils.py
index c35c0edf5..0f6f9c469 100644
--- a/tests/bot/cogs/moderation/test_utils.py
+++ b/tests/bot/cogs/moderation/test_utils.py
@@ -21,6 +21,71 @@ class ModerationUtilsTests(unittest.IsolatedAsyncioTestCase):
self.user = MockUser(id=1234)
self.ctx = MockContext(bot=self.bot, author=self.member)
+ async def test_post_user(self):
+ """Should POST a new user and return the response if successful or otherwise send an error message."""
+ user = MockUser(discriminator=5678, id=1234, name="Test user")
+ not_user = MagicMock(discriminator=3333, id=5678, name="Wrong user")
+ test_cases = [
+ {
+ "user": user,
+ "post_result": "bar",
+ "raise_error": None,
+ "payload": {
+ "discriminator": 5678,
+ "id": self.user.id,
+ "in_guild": False,
+ "name": "Test user",
+ "roles": []
+ }
+ },
+ {
+ "user": self.member,
+ "post_result": "foo",
+ "raise_error": ResponseCodeError(MagicMock(status=400), "foo"),
+ "payload": {
+ "discriminator": 0,
+ "id": self.member.id,
+ "in_guild": False,
+ "name": "Name unknown",
+ "roles": []
+ }
+ },
+ {
+ "user": not_user,
+ "post_result": "bar",
+ "raise_error": None,
+ "payload": {
+ "discriminator": not_user.discriminator,
+ "id": not_user.id,
+ "in_guild": False,
+ "name": not_user.name,
+ "roles": []
+ }
+ }
+ ]
+
+ for case in test_cases:
+ user = case["user"]
+ post_result = case["post_result"]
+ raise_error = case["raise_error"]
+ payload = case["payload"]
+
+ with self.subTest(user=user, post_result=post_result, raise_error=raise_error, payload=payload):
+ self.bot.api_client.post.reset_mock(side_effect=True)
+ self.ctx.bot.api_client.post.return_value = post_result
+
+ self.ctx.bot.api_client.post.side_effect = raise_error
+
+ result = await utils.post_user(self.ctx, user)
+
+ if raise_error:
+ self.assertIsNone(result)
+ self.ctx.send.assert_awaited_once()
+ self.assertIn(str(raise_error.status), self.ctx.send.call_args[0][0])
+ else:
+ self.assertEqual(result, post_result)
+ self.bot.api_client.post.assert_awaited_once_with("bot/users", json=payload)
+
async def test_get_active_infraction(self):
"""
Should request the API for active infractions and return infraction if the user has one or `None` otherwise.
@@ -205,71 +270,6 @@ class ModerationUtilsTests(unittest.IsolatedAsyncioTestCase):
send_private_embed_mock.assert_awaited_once_with(case.args[0], embed)
- async def test_post_user(self):
- """Should POST a new user and return the response if successful or otherwise send an error message."""
- user = MockUser(discriminator=5678, id=1234, name="Test user")
- not_user = MagicMock(discriminator=3333, id=5678, name="Wrong user")
- test_cases = [
- {
- "user": user,
- "post_result": "bar",
- "raise_error": None,
- "payload": {
- "discriminator": 5678,
- "id": self.user.id,
- "in_guild": False,
- "name": "Test user",
- "roles": []
- }
- },
- {
- "user": self.member,
- "post_result": "foo",
- "raise_error": ResponseCodeError(MagicMock(status=400), "foo"),
- "payload": {
- "discriminator": 0,
- "id": self.member.id,
- "in_guild": False,
- "name": "Name unknown",
- "roles": []
- }
- },
- {
- "user": not_user,
- "post_result": "bar",
- "raise_error": None,
- "payload": {
- "discriminator": not_user.discriminator,
- "id": not_user.id,
- "in_guild": False,
- "name": not_user.name,
- "roles": []
- }
- }
- ]
-
- for case in test_cases:
- user = case["user"]
- post_result = case["post_result"]
- raise_error = case["raise_error"]
- payload = case["payload"]
-
- with self.subTest(user=user, post_result=post_result, raise_error=raise_error, payload=payload):
- self.bot.api_client.post.reset_mock(side_effect=True)
- self.ctx.bot.api_client.post.return_value = post_result
-
- self.ctx.bot.api_client.post.side_effect = raise_error
-
- result = await utils.post_user(self.ctx, user)
-
- if raise_error:
- self.assertIsNone(result)
- self.ctx.send.assert_awaited_once()
- self.assertIn(str(raise_error.status), self.ctx.send.call_args[0][0])
- else:
- self.assertEqual(result, post_result)
- self.bot.api_client.post.assert_awaited_once_with("bot/users", json=payload)
-
async def test_send_private_embed(self):
"""Should DM the user and return `True` on success or `False` on failure."""
embed = Embed(title="Test", description="Test val")