123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- from misago.users.testutils import AuthenticatedUserTestCase
- from misago.threads.models import Thread
- from misago.threads.testutils import post_thread, reply_thread
- class ThreadViewTests(AuthenticatedUserTestCase):
- def setUp(self):
- super(ThreadViewTests, self).setUp()
- self.forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
- self.thread = post_thread(self.forum)
- def override_acl(self, new_acl):
- new_acl.update({'can_browse': True})
- forums_acl = self.user.acl
- forums_acl['visible_forums'].append(self.forum.pk)
- forums_acl['forums'][self.forum.pk] = new_acl
- override_acl(self.user, forums_acl)
- self.forum.acl = {}
- add_acl(self.user, self.forum)
- def reload_thread(self):
- self.thread = Thread.objects.get(id=thread.id)
- return self.thread
- class ThreadViewModerationTests(ThreadViewTests):
- def test_pin_thread(self):
- """its possible to pin thread"""
- self.override_acl({'can_pin_threads': 0})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'pin'})
- self.assertEqual(response.status_code, 200)
- # allow for pinning threads
- self.override_acl({'can_pin_threads': 1})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'pin'})
- self.assertEqual(response.status_code, 302)
- self.assertTrue(self.reload_thread().is_pinned)
- def test_unpin_thread(self):
- """its possible to unpin thread"""
- self.thread.is_pinned = True
- self.thread.save()
- self.override_acl({'can_pin_threads': 0})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'unpin'})
- self.assertEqual(response.status_code, 200)
- # allow for pinning threads
- self.override_acl({'can_pin_threads': 1})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'unpin'})
- self.assertEqual(response.status_code, 302)
- self.assertFalse(self.reload_thread().is_pinned)
|