Fix marking posts as spam/ham.
This commit is contained in:
parent
b184a30ae4
commit
5f9acb2df4
2 changed files with 51 additions and 2 deletions
|
@ -260,6 +260,54 @@ class ForumSpamTests(TestCase):
|
|||
self.assertNotContains(response, "postmarkspam")
|
||||
self.client.logout()
|
||||
|
||||
def test_mod_can_mark_spam(self):
|
||||
self.client.login(
|
||||
username=self.moderator.username, password=self.password)
|
||||
ps = PostStatus.objects.create_for_post(self.test_post)
|
||||
ps.state = PostStatus.FILTERED_HAM
|
||||
ps.save()
|
||||
response = self.client.get(
|
||||
reverse("djangobb:mark_post_spam", args=[self.test_post.id,]))
|
||||
self.assertEqual(self.test_post.poststatus.state, PostStatus.MARKED_SPAM)
|
||||
self.client.logout()
|
||||
|
||||
def test_mod_can_mark_ham(self):
|
||||
self.client.login(
|
||||
username=self.moderator.username, password=self.password)
|
||||
ps = PostStatus.objects.create_for_post(self.test_post)
|
||||
ps.state = PostStatus.FILTERED_SPAM
|
||||
ps.save()
|
||||
response = self.client.get(
|
||||
reverse("djangobb:mark_post_ham", args=[self.test_post.id,]))
|
||||
self.assertEqual(self.test_post.poststatus.state, PostStatus.MARKED_HAM)
|
||||
self.client.logout()
|
||||
|
||||
def test_normal_user_cannot_mark(self):
|
||||
self.client.login(
|
||||
username=self.user.username, password=self.password)
|
||||
ps = PostStatus.objects.create_for_post(self.test_post)
|
||||
ps.state = PostStatus.FILTERED_HAM
|
||||
ps.save()
|
||||
response = self.client.get(
|
||||
reverse("djangobb:mark_post_spam", args=[self.test_post.id,]))
|
||||
self.assertEqual(self.test_post.poststatus.state, PostStatus.FILTERED_HAM)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
response = self.client.get(
|
||||
reverse("djangobb:mark_post_ham", args=[self.test_post.id,]))
|
||||
self.assertEqual(PostStatus.objects.get(post=self.test_post).state, PostStatus.FILTERED_HAM)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
ps.state = PostStatus.FILTERED_SPAM
|
||||
ps.save()
|
||||
response = self.client.get(
|
||||
reverse("djangobb:mark_post_spam", args=[self.test_post.id,]))
|
||||
self.assertEqual(PostStatus.objects.get(post=self.test_post).state, PostStatus.FILTERED_SPAM)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
response = self.client.get(
|
||||
reverse("djangobb:mark_post_ham", args=[self.test_post.id,]))
|
||||
self.assertEqual(PostStatus.objects.get(post=self.test_post).state, PostStatus.FILTERED_SPAM)
|
||||
self.assertEqual(response.status_code, 403)
|
||||
self.client.logout()
|
||||
|
||||
# Template tags
|
||||
def test_can_proceed_tag(self):
|
||||
self.post_status = PostStatus.objects.create_for_post(self.test_post)
|
||||
|
|
|
@ -22,6 +22,7 @@ from django.utils.translation import ugettext as _
|
|||
from django.utils import timezone
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
from django_fsm.db.fields import can_proceed
|
||||
from haystack.query import SearchQuerySet, SQ
|
||||
|
||||
from djangobb_forum import settings as forum_settings
|
||||
|
@ -990,7 +991,7 @@ def mark_spam(request, post_id):
|
|||
request.user.is_superuser or
|
||||
request.user in post.topic.forum.moderators.all()):
|
||||
messages.success(request, _("You don't have permission to mark this post."))
|
||||
return HttpResponseRedirect(post.get_absolute_url())
|
||||
return HttpResponseForbidden(post.get_absolute_url())
|
||||
|
||||
if post_status is None:
|
||||
messages.success(request, _("There was not enough data collected to mark this post."))
|
||||
|
@ -1022,7 +1023,7 @@ def mark_ham(request, post_id):
|
|||
request.user.is_superuser or
|
||||
request.user in post.topic.forum.moderators.all()):
|
||||
messages.success(request, _("You don't have permission to mark this post."))
|
||||
return HttpResponseRedirect(post.get_absolute_url())
|
||||
return HttpResponseForbidden(post.get_absolute_url())
|
||||
|
||||
if post_status is None:
|
||||
messages.success(request, _("There was not enough data collected to mark this post."))
|
||||
|
|
Reference in a new issue