diff options
| -rw-r--r-- | tests/bot/exts/recruitment/talentpool/test_review.py | 23 | 
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 03c78ab08..9ad429ace 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,      ) @@ -117,10 +121,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,              ), @@ -151,6 +158,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: @@ -158,6 +170,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): @@ -201,6 +214,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) | 
