1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from datetime import timedelta
- from django.test import TestCase
- from django.utils import timezone
- from ...conf import settings
- from ..dates import get_cutoff_date, is_date_tracked
- class MockUser:
- is_authenticated = True
- def __init__(self):
- self.joined_on = timezone.now()
- class MockAnonymousUser:
- is_authenticated = False
- class ReadTrackerDatesTests(TestCase):
- def test_get_cutoff_date_no_user(self):
- """get_cutoff_date utility works without user argument"""
- valid_cutoff_date = timezone.now() - timedelta(
- days=settings.MISAGO_READTRACKER_CUTOFF
- )
- returned_cutoff_date = get_cutoff_date()
- self.assertTrue(returned_cutoff_date > valid_cutoff_date)
- def test_get_cutoff_date_user(self):
- """get_cutoff_date utility works with user argument"""
- user = MockUser()
- valid_cutoff_date = timezone.now() - timedelta(
- days=settings.MISAGO_READTRACKER_CUTOFF
- )
- returned_cutoff_date = get_cutoff_date(user)
- self.assertTrue(returned_cutoff_date > valid_cutoff_date)
- self.assertEqual(returned_cutoff_date, user.joined_on)
- def test_get_cutoff_date_anonymous_user(self):
- """passing anonymous user to get_cutoff_date has no effect"""
- user = MockAnonymousUser()
- valid_cutoff_date = timezone.now() - timedelta(
- days=settings.MISAGO_READTRACKER_CUTOFF
- )
- returned_cutoff_date = get_cutoff_date(user)
- self.assertTrue(returned_cutoff_date > valid_cutoff_date)
- def test_is_date_tracked(self):
- """is_date_tracked validates dates"""
- self.assertFalse(is_date_tracked(None, MockUser()))
- past_date = timezone.now() - timedelta(minutes=10)
- self.assertFalse(is_date_tracked(past_date, MockUser()))
- future_date = timezone.now() + timedelta(minutes=10)
- self.assertTrue(is_date_tracked(future_date, MockUser()))
|