aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar ks123 <[email protected]>2020-03-05 08:31:14 +0200
committerGravatar ks123 <[email protected]>2020-03-05 08:31:14 +0200
commit1c7675ba55342e29fa3e3b82cf36a6e321f76bf8 (patch)
treefca3a331f817fcbb352eb4a5f8115d8ae909edd2 /tests
parent(Moderation Utils Tests): Created tests for `send_private_embed` function + F... (diff)
(Moderation Utils Tests): Created tests for `post_infraction` function, created __init__.py for moderation tests
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/cogs/moderation/__init__.py0
-rw-r--r--tests/bot/cogs/moderation/test_utils.py69
2 files changed, 68 insertions, 1 deletions
diff --git a/tests/bot/cogs/moderation/__init__.py b/tests/bot/cogs/moderation/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/bot/cogs/moderation/__init__.py
diff --git a/tests/bot/cogs/moderation/test_utils.py b/tests/bot/cogs/moderation/test_utils.py
index c1cc11724..984a8aa41 100644
--- a/tests/bot/cogs/moderation/test_utils.py
+++ b/tests/bot/cogs/moderation/test_utils.py
@@ -1,4 +1,5 @@
import unittest
+from datetime import datetime
from typing import Union
from unittest.mock import AsyncMock
@@ -6,7 +7,7 @@ from discord import Embed, Forbidden, HTTPException, NotFound
from bot.api import ResponseCodeError
from bot.cogs.moderation.utils import (
- has_active_infraction, notify_infraction, notify_pardon, post_user, send_private_embed
+ has_active_infraction, notify_infraction, notify_pardon, post_infraction, post_user, send_private_embed
)
from bot.constants import Colours, Icons
from tests.helpers import MockBot, MockContext, MockMember, MockUser
@@ -261,3 +262,69 @@ class ModerationUtilsTests(unittest.IsolatedAsyncioTestCase):
result = await send_private_embed(*args)
self.assertEqual(result, expected)
+
+ async def test_post_infraction(self):
+ """Test does `post_infraction` return correct value."""
+ test_cases = [
+ {
+ "args": (self.ctx, self.member, "ban", "Test Ban"),
+ "expected_output": [
+ {
+ "id": 1,
+ "inserted_at": "2018-11-22T07:24:06.132307Z",
+ "expires_at": "5018-11-20T15:52:00Z",
+ "active": True,
+ "user": 1234,
+ "actor": 1234,
+ "type": "ban",
+ "reason": "Test Ban",
+ "hidden": False
+ }
+ ],
+ "raised_error": None
+ },
+ {
+ "args": (self.ctx, self.member, "note", "Test Ban"),
+ "expected_output": None,
+ "raised_error": ResponseCodeError(AsyncMock(), AsyncMock())
+ },
+ {
+ "args": (self.ctx, self.member, "mute", "Test Ban"),
+ "expected_output": None,
+ "raised_error": ResponseCodeError(AsyncMock(), {'user': 1234})
+ },
+ {
+ "args": (self.ctx, self.member, "ban", "Test Ban", datetime.now()),
+ "expected_output": [
+ {
+ "id": 1,
+ "inserted_at": "2018-11-22T07:24:06.132307Z",
+ "expires_at": "5018-11-20T15:52:00Z",
+ "active": True,
+ "user": 1234,
+ "actor": 1234,
+ "type": "ban",
+ "reason": "Test Ban",
+ "hidden": False
+ }
+ ],
+ "raised_error": None
+ },
+ ]
+
+ for case in test_cases:
+ args = case["args"]
+ expected = case["expected_output"]
+ raised = case["raised_error"]
+
+ with self.subTest(args=args, expected=expected, raised=raised):
+ if raised:
+ self.ctx.bot.api_client.post.side_effect = raised
+
+ self.ctx.bot.api_client.post.return_value = expected
+
+ result = await post_infraction(*args)
+
+ self.assertEqual(result, expected)
+
+ self.ctx.bot.api_client.post.reset_mock(side_effect=True)