123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- from datetime import timedelta
- from django.utils import timezone
- from ...conf.test import override_dynamic_settings
- from ...threads.test import reply_thread
- from ..threadstracker import make_read_aware
- def remove_tracking(thread):
- thread.started_on = timezone.now() - timedelta(days=4)
- thread.save()
- thread.first_post.posted_on = thread.started_on
- thread.first_post.save()
- def test_falsy_value_can_be_made_read_aware(request_mock):
- make_read_aware(request_mock, None)
- make_read_aware(request_mock, False)
- def test_empty_list_can_be_made_read_aware(request_mock):
- make_read_aware(request_mock, [])
- def test_read_thread_is_marked_as_read(request_mock, read_thread):
- make_read_aware(request_mock, read_thread)
- assert read_thread.is_read
- assert not read_thread.is_new
- def test_read_thread_with_hidden_post_marked_as_unread(request_mock, read_thread):
- reply_thread(read_thread, is_hidden=True)
- make_read_aware(request_mock, read_thread)
- assert not read_thread.is_read
- assert read_thread.is_new
- def test_read_thread_with_invisible_post_marked_as_read(request_mock, read_thread):
- reply_thread(read_thread, is_unapproved=True)
- make_read_aware(request_mock, read_thread)
- assert read_thread.is_read
- assert not read_thread.is_new
- def test_read_thread_with_unread_post_marked_as_unread(request_mock, read_thread):
- reply_thread(read_thread)
- make_read_aware(request_mock, read_thread)
- assert not read_thread.is_read
- assert read_thread.is_new
- def test_untracked_thread_with_tracked_post_is_marked_as_unread(request_mock, thread):
- remove_tracking(thread)
- reply_thread(thread)
- make_read_aware(request_mock, thread)
- assert not thread.is_read
- assert thread.is_new
- def test_tracked_thread_is_marked_as_unread(request_mock, thread):
- make_read_aware(request_mock, thread)
- assert not thread.is_read
- assert thread.is_new
- def test_thread_with_post_older_than_user_is_marked_as_read(request_mock, thread, user):
- remove_tracking(thread)
- make_read_aware(request_mock, thread)
- assert thread.is_read
- assert not thread.is_new
- @override_dynamic_settings(readtracker_cutoff=3)
- def test_non_tracked_thread_is_marked_as_read(request_mock, thread, user):
- user.joined_on = timezone.now() - timedelta(days=10)
- user.save()
- remove_tracking(thread)
- make_read_aware(request_mock, thread)
- assert thread.is_read
- assert not thread.is_new
- def test_read_thread_with_new_event_is_marked_as_unread(request_mock, read_thread):
- reply_thread(read_thread, is_event=True)
- make_read_aware(request_mock, read_thread)
- assert not read_thread.is_read
- assert read_thread.is_new
- def test_read_thread_with_hidden_event_is_marked_as_read(request_mock, read_thread):
- reply_thread(read_thread, is_hidden=True, is_event=True)
- make_read_aware(request_mock, read_thread)
- assert read_thread.is_read
- assert not read_thread.is_new
- def test_read_thread_with_hidden_event_visible_to_user_is_marked_as_unread(
- request_mock, read_thread, default_category
- ):
- request_mock.user_acl["categories"][default_category.id]["can_hide_events"] = 1
- reply_thread(read_thread, is_hidden=True, is_event=True)
- make_read_aware(request_mock, read_thread)
- assert not read_thread.is_read
- assert read_thread.is_new
- def test_tracked_thread_is_marked_as_read_for_anonymous_user(
- anonymous_request_mock, thread
- ):
- make_read_aware(anonymous_request_mock, thread)
- assert thread.is_read
- assert not thread.is_new
- @override_dynamic_settings(readtracker_cutoff=3)
- def test_non_tracked_thread_is_marked_as_read_for_anonymous_user(
- anonymous_request_mock, thread
- ):
- remove_tracking(thread)
- make_read_aware(anonymous_request_mock, thread)
- assert thread.is_read
- assert not thread.is_new
|