Switch to side-by-side view

--- a/Allura/allura/tests/model/test_discussion.py
+++ b/Allura/allura/tests/model/test_discussion.py
@@ -356,3 +356,25 @@
             pass  # method not called as expected
         else:
             assert False, 'send_simple must not be called'
+
+@with_setup(setUp, tearDown)
+def test_check_spam_for_admin():
+    d = M.Discussion(shortname='test', name='test')
+    t = M.Thread(discussion_id=d._id, subject='Test Thread')
+    t.post('This is a post')
+    post = M.Post.query.get(text='This is a post')
+    assert t.check_spam(post), t.check_spam(post)
+
+@with_setup(setUp, tearDown)
+@patch('allura.model.discuss.c.user.project_role')
+def test_check_spam(role):
+    d = M.Discussion(shortname='test', name='test')
+    t = M.Thread(discussion_id=d._id, subject='Test Thread')
+    role.roles.return_value = []
+    with mock.patch('allura.controllers.discuss.g.spam_checker') as spam_checker:
+        spam_checker.check.return_value = True
+        post = mock.Mock()
+        assert not t.check_spam(post)
+        assert spam_checker.check.call_count == 1, spam_checker.call_count
+
+