This is an automated email from the ASF dual-hosted git repository. brondsem pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/allura.git
The following commit(s) were added to refs/heads/master by this push: new 743540ffc convert akismet response type to bool, for SpamCheckResult 743540ffc is described below commit 743540ffc323cca998be73d550d89369df36d70d Author: Dave Brondsema <dbronds...@slashdotmedia.com> AuthorDate: Tue May 21 12:22:33 2024 -0400 convert akismet response type to bool, for SpamCheckResult --- Allura/allura/lib/spam/__init__.py | 3 ++- Allura/allura/lib/spam/akismetfilter.py | 4 +++- Allura/allura/tests/unit/spam/test_akismet.py | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Allura/allura/lib/spam/__init__.py b/Allura/allura/lib/spam/__init__.py index 316fb0f37..af5480f99 100644 --- a/Allura/allura/lib/spam/__init__.py +++ b/Allura/allura/lib/spam/__init__.py @@ -22,6 +22,7 @@ from paste.deploy.converters import aslist from allura.lib.helpers import exceptionless from allura.model.artifact import SpamCheckResult +from allura import model as M log = logging.getLogger(__name__) @@ -48,7 +49,7 @@ class SpamFilter: def submit_ham(self, text, artifact=None, user=None, content_type='comment', **kw): log.info("No submit_ham available for %s", self.filter_name) - def record_result(self, result, artifact, user): + def record_result(self, result: bool, artifact: M.Artifact, user: M.User): log.info("spam={} ({}): {}".format(str(result), self.filter_name, artifact.url() if artifact else '')) r = SpamCheckResult( ref=artifact.ref if artifact else None, diff --git a/Allura/allura/lib/spam/akismetfilter.py b/Allura/allura/lib/spam/akismetfilter.py index c4c85d2d0..9f221992f 100644 --- a/Allura/allura/lib/spam/akismetfilter.py +++ b/Allura/allura/lib/spam/akismetfilter.py @@ -17,6 +17,7 @@ import logging +from akismet import CheckResponse from tg import request from tg import tmpl_context as c @@ -112,7 +113,8 @@ class AkismetSpamFilter(SpamFilter): content_type=content_type, request=request, )) - self.record_result(res, artifact, user) + spam = res != CheckResponse.HAM + self.record_result(spam, artifact, user) return res def submit_spam(self, text, artifact=None, user=None, content_type='comment'): diff --git a/Allura/allura/tests/unit/spam/test_akismet.py b/Allura/allura/tests/unit/spam/test_akismet.py index 268545dd9..20a205fa8 100644 --- a/Allura/allura/tests/unit/spam/test_akismet.py +++ b/Allura/allura/tests/unit/spam/test_akismet.py @@ -23,6 +23,7 @@ import six.moves.urllib.parse import six.moves.urllib.error from datetime import datetime +from akismet import CheckResponse from bson import ObjectId from allura.lib.spam.akismetfilter import AKISMET_AVAILABLE, AkismetSpamFilter @@ -39,6 +40,8 @@ class TestAkismet(unittest.TestCase): # side effect to test that data being sent to # akismet can be successfully urlencoded six.moves.urllib.parse.urlencode(kw.get('data', {})) + return CheckResponse.HAM # relevant to comment_check() + self.akismet.service.comment_check = mock.Mock(side_effect=side_effect) self.akismet.service.submit_spam = mock.Mock(side_effect=side_effect) self.akismet.service.submit_ham = mock.Mock(side_effect=side_effect)