test_threads_moderation.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from misago.forums.models import Forum
  2. from misago.users.testutils import AuthenticatedUserTestCase
  3. from misago.threads import moderation, testutils
  4. from misago.threads.models import Thread, Post, Event
  5. class ThreadsModerationTests(AuthenticatedUserTestCase):
  6. def setUp(self):
  7. super(ThreadsModerationTests, self).setUp()
  8. self.forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
  9. self.thread = testutils.post_thread(self.forum)
  10. def reload_thread(self):
  11. self.thread = Thread.objects.get(pk=self.thread.pk)
  12. def test_announce_thread(self):
  13. """announce_thread makes thread announcement"""
  14. self.assertEqual(self.thread.weight, 0)
  15. self.assertTrue(moderation.announce_thread(self.user, self.thread))
  16. self.reload_thread()
  17. self.assertEqual(self.thread.weight, 2)
  18. self.assertTrue(self.thread.has_events)
  19. event = self.thread.event_set.last()
  20. self.assertEqual(event.icon, "star")
  21. self.assertIn("changed thread to announcement.", event.message)
  22. def test_announce_invalid_thread(self):
  23. """announce_thread returns false for already announced thread"""
  24. self.thread.weight = 2
  25. self.assertFalse(moderation.announce_thread(self.user, self.thread))
  26. self.assertEqual(self.thread.weight, 2)
  27. def test_pin_thread(self):
  28. """pin_thread makes thread pinned"""
  29. self.assertEqual(self.thread.weight, 0)
  30. self.assertTrue(moderation.pin_thread(self.user, self.thread))
  31. self.reload_thread()
  32. self.assertEqual(self.thread.weight, 1)
  33. self.assertTrue(self.thread.has_events)
  34. event = self.thread.event_set.last()
  35. self.assertEqual(event.icon, "bookmark")
  36. self.assertIn("pinned thread.", event.message)
  37. def test_pin_invalid_thread(self):
  38. """pin_thread returns false for already pinned thread"""
  39. self.thread.weight = 1
  40. self.assertFalse(moderation.pin_thread(self.user, self.thread))
  41. self.assertEqual(self.thread.weight, 1)
  42. def test_reset_thread(self):
  43. """reset_thread defaults thread weight"""
  44. moderation.pin_thread(self.user, self.thread)
  45. self.assertEqual(self.thread.weight, 1)
  46. self.assertTrue(moderation.reset_thread(self.user, self.thread))
  47. self.reload_thread()
  48. self.assertEqual(self.thread.weight, 0)
  49. self.assertTrue(self.thread.has_events)
  50. event = self.thread.event_set.last()
  51. self.assertIn("unpinned thread.", event.message)
  52. self.assertEqual(event.icon, "circle")
  53. def test_reset_invalid_thread(self):
  54. """reset_thread returns false for already default thread"""
  55. self.assertFalse(moderation.reset_thread(self.user, self.thread))
  56. self.assertEqual(self.thread.weight, 0)