[#5382] Make sure new topics get spam checked
diff --git a/ForgeDiscussion/forgediscussion/controllers/root.py b/ForgeDiscussion/forgediscussion/controllers/root.py
index 0bc6c72..6cb1b3b 100644
--- a/ForgeDiscussion/forgediscussion/controllers/root.py
+++ b/ForgeDiscussion/forgediscussion/controllers/root.py
@@ -103,6 +103,7 @@
thd = discussion.get_discussion_thread(dict(
headers=dict(Subject=subject)))[0]
post = thd.post(subject, text)
+ is_spam = g.spam_checker.check('%s\n%s' % (subject, text), artifact=post, user=c.user)
flash('Message posted')
redirect(thd.url())
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
index 93d9023..0cecc0f 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum.py
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
+import mock
import random
import logging
from email.mime.text import MIMEText
@@ -368,7 +369,8 @@
'delete': 'Delete Marked'})
_check()
- def test_posting(self):
+ @mock.patch('forgediscussion.controllers.root.g.spam_checker')
+ def test_posting(self, spam_checker):
r = self.app.get('/discussion/create_topic/')
f = r.html.find('form',{'action':'/p/test/discussion/save_new_topic'})
params = dict()
@@ -380,6 +382,8 @@
params[f.find('select')['name']] = 'testforum'
params[f.find('input',{'style':'width: 90%'})['name']] = 'Test Thread'
r = self.app.post('/discussion/save_new_topic', params=params)
+ spam_checker.check.call_args[0] == 'Test Thread\nThis is a *test thread*', \
+ spam_checker.check.call_args[0]
r = self.app.get('/admin/discussion/forums')
assert 'Message posted' in r
r = self.app.get('/discussion/testforum/moderate/')