test_sync_unread_private_threads.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from django.contrib.auth import get_user_model
  2. from misago.threads import testutils
  3. from misago.threads.models import ThreadParticipant
  4. from .test_privatethreads import PrivateThreadsTestCase
  5. UserModel = get_user_model()
  6. class SyncUnreadPrivateThreadsTestCase(PrivateThreadsTestCase):
  7. def setUp(self):
  8. super(SyncUnreadPrivateThreadsTestCase, self).setUp()
  9. self.other_user = UserModel.objects.create_user(
  10. 'BobBoberson', 'bob@boberson.com', 'pass123')
  11. self.thread = testutils.post_thread(self.category, poster=self.user)
  12. ThreadParticipant.objects.set_owner(self.thread, self.other_user)
  13. ThreadParticipant.objects.add_participants(self.thread, [self.user])
  14. def test_middleware_counts_new_thread(self):
  15. """middleware counts new thread"""
  16. self.user.sync_unread_private_threads = True
  17. self.user.save()
  18. response = self.client.get('/')
  19. self.assertEqual(response.status_code, 200)
  20. # user was resynced
  21. self.reload_user()
  22. self.assertFalse(self.user.sync_unread_private_threads)
  23. self.assertEqual(self.user.unread_private_threads, 1)
  24. def test_middleware_counts_unread_thread(self):
  25. """middleware counts thread with unread reply, post read flags user for recount"""
  26. self.user.sync_unread_private_threads = True
  27. self.user.save()
  28. self.client.post(self.thread.last_post.get_read_api_url())
  29. # post read zeroed list of unread private threads
  30. self.reload_user()
  31. self.assertFalse(self.user.sync_unread_private_threads)
  32. self.assertEqual(self.user.unread_private_threads, 0)
  33. # reply to thread
  34. testutils.reply_thread(self.thread)
  35. self.user.sync_unread_private_threads = True
  36. self.user.save()
  37. # middleware did recount and accounted for new unread post
  38. response = self.client.get('/')
  39. self.assertEqual(response.status_code, 200)
  40. self.reload_user()
  41. self.assertFalse(self.user.sync_unread_private_threads)
  42. self.assertEqual(self.user.unread_private_threads, 1)