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)

Reply via email to