test_goto.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from misago.forums.models import Forum
  2. from misago.users.testutils import AuthenticatedUserTestCase
  3. from misago.threads import goto
  4. from misago.threads.testutils import post_thread, reply_thread
  5. class GotoTests(AuthenticatedUserTestCase):
  6. def setUp(self):
  7. super(GotoTests, self).setUp()
  8. self.forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
  9. self.forum.labels = []
  10. self.thread = post_thread(self.forum)
  11. def test_get_thread_pages(self):
  12. """get_thread_pages returns valid count of pages for given positions"""
  13. self.assertEqual(goto.get_thread_pages(1), 1)
  14. self.assertEqual(goto.get_thread_pages(10), 1)
  15. self.assertEqual(goto.get_thread_pages(13), 1)
  16. self.assertEqual(goto.get_thread_pages(14), 2)
  17. self.assertEqual(goto.get_thread_pages(19), 2)
  18. self.assertEqual(goto.get_thread_pages(20), 2)
  19. self.assertEqual(goto.get_thread_pages(23), 2)
  20. self.assertEqual(goto.get_thread_pages(24), 3)
  21. self.assertEqual(goto.get_thread_pages(27), 3)
  22. self.assertEqual(goto.get_thread_pages(36), 4)
  23. self.assertEqual(goto.get_thread_pages(373), 37)
  24. def test_get_post_page(self):
  25. """get_post_page returns valid page number for given queryset"""
  26. self.assertEqual(goto.get_post_page(1, self.thread.post_set), 1)
  27. # add 12 posts, bumping no of posts on page to to 13
  28. [reply_thread(self.thread) for p in xrange(12)]
  29. self.assertEqual(goto.get_post_page(13, self.thread.post_set), 1)
  30. # add 2 posts
  31. [reply_thread(self.thread) for p in xrange(2)]
  32. self.assertEqual(goto.get_post_page(15, self.thread.post_set), 2)