aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/exts/moderation/infraction/test_utils.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/tests/bot/exts/moderation/infraction/test_utils.py b/tests/bot/exts/moderation/infraction/test_utils.py
index b1f23e31c..5ba0f4273 100644
--- a/tests/bot/exts/moderation/infraction/test_utils.py
+++ b/tests/bot/exts/moderation/infraction/test_utils.py
@@ -1,7 +1,7 @@
import unittest
from collections import namedtuple
from datetime import datetime
-from unittest.mock import AsyncMock, MagicMock, call, patch
+from unittest.mock import AsyncMock, MagicMock, patch
from botcore.site_api import ResponseCodeError
from discord import Embed, Forbidden, HTTPException, NotFound
@@ -351,11 +351,10 @@ class TestPostInfraction(unittest.IsolatedAsyncioTestCase):
self.assertIsNone(actual)
post_user_mock.assert_awaited_once_with(self.ctx, self.user)
- @patch("bot.exts.moderation.infraction._utils.datetime", wraps=datetime)
@patch("bot.exts.moderation.infraction._utils.post_user", return_value="bar")
- async def test_first_fail_second_success_user_post_infraction(self, post_user_mock, mock_datetime):
+ async def test_first_fail_second_success_user_post_infraction(self, post_user_mock):
"""Should post the user if they don't exist, POST infraction again, and return the response if successful."""
- payload = {
+ expected = {
"actor": self.ctx.author.id,
"hidden": False,
"reason": "Test reason",
@@ -363,13 +362,17 @@ class TestPostInfraction(unittest.IsolatedAsyncioTestCase):
"user": self.user.id,
"active": True,
"dm_sent": False,
- "last_applied": datetime(2020, 1, 1).isoformat(),
}
- # Patch the datetime.now function to return a specific time
- mock_datetime.now.return_value = datetime(2020, 1, 1)
self.bot.api_client.post.side_effect = [ResponseCodeError(MagicMock(status=400), {"user": "foo"}), "foo"]
actual = await utils.post_infraction(self.ctx, self.user, "mute", "Test reason")
self.assertEqual(actual, "foo")
- self.bot.api_client.post.assert_has_awaits([call("bot/infractions", json=payload)] * 2)
+ await_args = self.bot.api_client.post.await_args_list
+ self.assertEqual(len(await_args), 2, "Expected 2 awaits")
+
+ # Since `last_applied` is based on current time, just check if expected is a subset of payload
+ for args in await_args:
+ payload: dict = args.kwargs["json"]
+ self.assertEqual(payload, payload | expected)
+
post_user_mock.assert_awaited_once_with(self.ctx, self.user)