test_sync_unread_private_threads.py 2.0 KB

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