test_dates.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. from datetime import timedelta
  2. from django.test import TestCase
  3. from django.utils import timezone
  4. from misago.readtracker.dates import is_date_tracked
  5. class MockUser(object):
  6. def __init__(self):
  7. self.reads_cutoff = timezone.now()
  8. class ReadTrackerDatesTests(TestCase):
  9. def test_is_date_tracked(self):
  10. """is_date_tracked validates dates"""
  11. self.assertFalse(is_date_tracked(None, MockUser()))
  12. past_date = timezone.now() - timedelta(minutes=10)
  13. self.assertFalse(is_date_tracked(past_date, MockUser()))
  14. future_date = timezone.now() + timedelta(minutes=10)
  15. self.assertTrue(is_date_tracked(future_date, MockUser()))
  16. def test_is_date_tracked_with_forum_cutoff(self):
  17. """is_date_tracked validates dates using forum cutoff"""
  18. self.assertFalse(is_date_tracked(None, MockUser()))
  19. past_date = timezone.now() + timedelta(minutes=10)
  20. forum_cutoff = timezone.now() + timedelta(minutes=20)
  21. self.assertFalse(is_date_tracked(past_date, MockUser(), forum_cutoff))
  22. forum_cutoff = timezone.now() - timedelta(minutes=20)
  23. self.assertTrue(is_date_tracked(past_date, MockUser(), forum_cutoff))