Ejemplo n.º 1
0
    def test_predicate_eval_emoji_reaction(self):
        """Test the predicate_eval_emoji_reaction function."""
        valid_reaction = MockReaction(message=MockMessage(id=1))
        valid_reaction.__str__.return_value = snekbox.REEVAL_EMOJI
        valid_ctx = MockContext(message=MockMessage(id=1),
                                author=MockUser(id=2))
        valid_user = MockUser(id=2)

        invalid_reaction_id = MockReaction(message=MockMessage(id=42))
        invalid_reaction_id.__str__.return_value = snekbox.REEVAL_EMOJI
        invalid_user_id = MockUser(id=42)
        invalid_reaction_str = MockReaction(message=MockMessage(id=1))
        invalid_reaction_str.__str__.return_value = ':longbeard:'

        cases = ((invalid_reaction_id, valid_user, False,
                  'invalid reaction ID'), (valid_reaction, invalid_user_id,
                                           False, 'invalid user ID'),
                 (invalid_reaction_str, valid_user, False,
                  'invalid reaction __str__'), (valid_reaction, valid_user,
                                                True, 'matching attributes'))
        for reaction, user, expected, testname in cases:
            with self.subTest(
                    msg=f'Test with {testname} and expected return {expected}'
            ):
                actual = snekbox.predicate_eval_emoji_reaction(
                    valid_ctx, reaction, user)
                self.assertEqual(actual, expected)
Ejemplo n.º 2
0
 def test_own_reactions(self):
     """Only bot's own emoji are extracted from the input incident."""
     reactions = (
         MockReaction(emoji="A", me=True),
         MockReaction(emoji="B", me=True),
         MockReaction(emoji="C", me=False),
     )
     message = MockMessage(reactions=reactions)
     self.assertSetEqual(incidents.own_reactions(message), {"A", "B"})