aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/exts/recruitment/talentpool/test_review.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/bot/exts/recruitment/talentpool/test_review.py b/tests/bot/exts/recruitment/talentpool/test_review.py
index 1ddb73ab0..f726fccc7 100644
--- a/tests/bot/exts/recruitment/talentpool/test_review.py
+++ b/tests/bot/exts/recruitment/talentpool/test_review.py
@@ -30,13 +30,17 @@ def nomination(
inserted_at: datetime,
num_entries: int,
reviewed: bool = False,
- id: int | None = None
+ id: int | None = None,
+ msg_count: int = 1000,
) -> Mock:
+ id = id or MockMember().id
return Mock(
id=id or MockMember().id,
+ user_id=id,
inserted_at=inserted_at,
entries=[Mock() for _ in range(num_entries)],
- reviewed=reviewed
+ reviewed=reviewed,
+ _msg_count=msg_count,
)
@@ -127,10 +131,13 @@ class ReviewerTests(unittest.IsolatedAsyncioTestCase):
# Each case contains a list of nominations, followed by the index in that list
# of the one that should be selected, or None if None should be returned
cases = [
- # One nomination, too recent so don't send.
+ # Don't send if too recent, already reviewed, or no recent messages.
(
[
nomination(now - timedelta(days=1), 5),
+ nomination(now - timedelta(days=10), 5, reviewed=True),
+ nomination(now - timedelta(days=10), 5, msg_count=0),
+
],
None,
),
@@ -161,6 +168,11 @@ class ReviewerTests(unittest.IsolatedAsyncioTestCase):
with self.subTest(case_num=case_num):
get_nominations_mock = AsyncMock(return_value=nominations)
self.nomination_api.get_nominations = get_nominations_mock
+
+ activity = {nomination.id: nomination._msg_count for nomination in nominations}
+ get_activity_mock = AsyncMock(return_value=activity)
+ self.nomination_api.get_activity = get_activity_mock
+
res = await self.reviewer.get_nomination_to_review()
if expected is None:
@@ -168,6 +180,7 @@ class ReviewerTests(unittest.IsolatedAsyncioTestCase):
else:
self.assertEqual(res, nominations[expected])
get_nominations_mock.assert_called_once_with(active=True)
+ get_activity_mock.assert_called_once()
@patch("bot.exts.recruitment.talentpool._review.MIN_NOMINATION_TIME", timedelta(days=0))
async def test_get_nomination_to_review_order(self):
@@ -211,6 +224,10 @@ class ReviewerTests(unittest.IsolatedAsyncioTestCase):
get_nominations_mock = AsyncMock(return_value=case[i:])
self.nomination_api.get_nominations = get_nominations_mock
+ activity = {nomination.id: nomination._msg_count for nomination in case}
+ get_activity_mock = AsyncMock(return_value=activity)
+ self.nomination_api.get_activity = get_activity_mock
+
res = await self.reviewer.get_nomination_to_review()
self.assertEqual(res, case[i])
get_nominations_mock.assert_called_once_with(active=True)