|
@@ -10,7 +10,6 @@ from misago.threads import testutils
|
|
|
from misago.users.models import AnonymousUser
|
|
|
|
|
|
from misago.readtracker import forumstracker, threadstracker
|
|
|
-from misago.readtracker.dates import cutoff_date
|
|
|
|
|
|
|
|
|
class ReadTrackerTests(TestCase):
|
|
@@ -54,14 +53,14 @@ class ForumsTrackerTests(ReadTrackerTests):
|
|
|
|
|
|
def test_make_read_aware_sets_read_flag_for_forum_with_old_thread(self):
|
|
|
"""make_read_aware sets read flag on forum with old thread"""
|
|
|
- self.forum.last_post_on = cutoff_date() - timedelta(days=1)
|
|
|
+ self.forum.last_post_on = self.user.joined_on - timedelta(days=1)
|
|
|
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertTrue(self.forum.is_read)
|
|
|
|
|
|
def test_make_read_aware_sets_unread_flag_for_forum_with_new_thread(self):
|
|
|
"""make_read_aware sets unread flag on forum with new thread"""
|
|
|
- self.forum.last_post_on = cutoff_date() + timedelta(days=1)
|
|
|
+ self.forum.last_post_on = self.user.joined_on + timedelta(days=1)
|
|
|
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertFalse(self.forum.is_read)
|
|
@@ -80,7 +79,7 @@ class ForumsTrackerTests(ReadTrackerTests):
|
|
|
sync_record sets read flag on forum with old thread,
|
|
|
then changes flag to unread when new reply is posted
|
|
|
"""
|
|
|
- self.post_thread(cutoff_date() - timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on - timedelta(days=1))
|
|
|
|
|
|
add_acl(self.user, self.forums)
|
|
|
forumstracker.sync_record(self.user, self.forum)
|
|
@@ -89,7 +88,7 @@ class ForumsTrackerTests(ReadTrackerTests):
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertTrue(self.forum.is_read)
|
|
|
|
|
|
- thread = self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
+ thread = self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
forumstracker.sync_record(self.user, self.forum)
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertFalse(self.forum.is_read)
|
|
@@ -99,7 +98,7 @@ class ForumsTrackerTests(ReadTrackerTests):
|
|
|
sync_record sets read flag on forum with old thread,
|
|
|
then keeps flag to unread when new reply is posted
|
|
|
"""
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
|
|
|
add_acl(self.user, self.forums)
|
|
|
forumstracker.sync_record(self.user, self.forum)
|
|
@@ -108,16 +107,16 @@ class ForumsTrackerTests(ReadTrackerTests):
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertFalse(self.forum.is_read)
|
|
|
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
forumstracker.sync_record(self.user, self.forum)
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertFalse(self.forum.is_read)
|
|
|
|
|
|
def test_sync_record_for_forum_with_deleted_threads(self):
|
|
|
"""unread forum reverts to read after its emptied"""
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
|
|
|
add_acl(self.user, self.forums)
|
|
|
forumstracker.sync_record(self.user, self.forum)
|
|
@@ -133,10 +132,10 @@ class ForumsTrackerTests(ReadTrackerTests):
|
|
|
|
|
|
def test_sync_record_for_forum_with_many_threads(self):
|
|
|
"""sync_record sets unread flag on forum with many threads"""
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
- self.post_thread(cutoff_date() - timedelta(days=1))
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
- self.post_thread(cutoff_date() - timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on - timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on - timedelta(days=1))
|
|
|
|
|
|
add_acl(self.user, self.forums)
|
|
|
forumstracker.sync_record(self.user, self.forum)
|
|
@@ -145,7 +144,7 @@ class ForumsTrackerTests(ReadTrackerTests):
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertFalse(self.forum.is_read)
|
|
|
|
|
|
- self.post_thread(cutoff_date() + timedelta(days=1))
|
|
|
+ self.post_thread(self.user.joined_on + timedelta(days=1))
|
|
|
forumstracker.sync_record(self.user, self.forum)
|
|
|
forumstracker.make_read_aware(self.user, self.forums)
|
|
|
self.assertFalse(self.forum.is_read)
|
|
@@ -156,13 +155,13 @@ class ThreadsTrackerTests(ReadTrackerTests):
|
|
|
super(ThreadsTrackerTests, self).setUp()
|
|
|
|
|
|
self.thread = self.post_thread(timezone.now() - timedelta(days=10))
|
|
|
- self.reply_thread()
|
|
|
|
|
|
def reply_thread(self, is_hidden=False, is_moderated=False):
|
|
|
self.post = testutils.reply_thread(
|
|
|
thread=self.thread,
|
|
|
is_hidden=is_hidden,
|
|
|
- is_moderated=is_moderated)
|
|
|
+ is_moderated=is_moderated,
|
|
|
+ posted_on=timezone.now())
|
|
|
return self.post
|
|
|
|
|
|
def test_thread_read_for_guest(self):
|
|
@@ -170,16 +169,26 @@ class ThreadsTrackerTests(ReadTrackerTests):
|
|
|
threadstracker.make_read_aware(self.anon, self.thread)
|
|
|
self.assertTrue(self.thread.is_read)
|
|
|
|
|
|
+ self.reply_thread()
|
|
|
threadstracker.make_read_aware(self.anon, [self.thread])
|
|
|
self.assertTrue(self.thread.is_read)
|
|
|
|
|
|
- def test_thread_unread_for_user(self):
|
|
|
- """thread is unread for user"""
|
|
|
+ def test_thread_read_for_user(self):
|
|
|
+ """thread is read for user"""
|
|
|
+ threadstracker.make_read_aware(self.user, self.thread)
|
|
|
+ self.assertTrue(self.thread.is_read)
|
|
|
+
|
|
|
+ def test_thread_replied_unread_for_user(self):
|
|
|
+ """replied thread is unread for user"""
|
|
|
+ self.reply_thread(self.thread)
|
|
|
+
|
|
|
threadstracker.make_read_aware(self.user, self.thread)
|
|
|
self.assertFalse(self.thread.is_read)
|
|
|
|
|
|
- def test_thread_read(self):
|
|
|
+ def _test_thread_read(self):
|
|
|
"""thread read flag is set for user, then its set as unread by reply"""
|
|
|
+ self.reply_thread(self.thread)
|
|
|
+
|
|
|
add_acl(self.user, self.forums)
|
|
|
threadstracker.make_read_aware(self.user, self.thread)
|
|
|
self.assertFalse(self.thread.is_read)
|
|
@@ -202,7 +211,7 @@ class ThreadsTrackerTests(ReadTrackerTests):
|
|
|
self.assertFalse(self.forum.is_read)
|
|
|
|
|
|
posts = [post for post in self.thread.post_set.order_by('id')]
|
|
|
- threadstracker.make_posts_read_aware(self.thread, posts)
|
|
|
+ threadstracker.make_posts_read_aware(self.user, self.thread, posts)
|
|
|
|
|
|
for post in posts[:-1]:
|
|
|
self.assertTrue(post.is_read)
|