12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- from datetime import timedelta
- from io import StringIO
- from django.core import management
- from django.utils import timezone
- from ...conf.test import override_dynamic_settings
- from ..management.commands import clearreadtracker
- from ..models import PostRead
- def call_command():
- command = clearreadtracker.Command()
- out = StringIO()
- management.call_command(command, stdout=out)
- return out.getvalue().strip().splitlines()[-1].strip()
- def test_command_works_if_there_are_no_read_tracker_entries(db):
- command_output = call_command()
- assert command_output == "No expired entries were found"
- @override_dynamic_settings(readtracker_cutoff=5)
- def test_recent_read_tracker_entry_is_not_cleared(user, post):
- existing = PostRead.objects.create(
- user=user,
- category=post.category,
- thread=post.thread,
- post=post,
- last_read_on=timezone.now(),
- )
- command_output = call_command()
- assert command_output == "No expired entries were found"
- assert PostRead.objects.exists()
- @override_dynamic_settings(readtracker_cutoff=5)
- def test_old_read_tracker_entry_is_cleared(user, post):
- existing = PostRead.objects.create(
- user=user,
- category=post.category,
- thread=post.thread,
- post=post,
- last_read_on=timezone.now() - timedelta(days=10),
- )
- command_output = call_command()
- assert command_output == "Deleted 1 expired entries"
- assert not PostRead.objects.exists()
|