123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- from datetime import timedelta
- from django.conf import settings
- from django.contrib.auth import get_user_model
- from django.test import TestCase
- from django.utils import timezone
- from django.utils.six import StringIO
- from misago.notifications import notify_user
- from misago.notifications.management.commands import deleteoldnotifications
- class DeleteOldNotificatinsTests(TestCase):
- def test_regen_blank_avatar(self):
- """command deletes old notifications"""
- # create user
- User = get_user_model()
- user = User.objects.create_user("Bob", "bob@boberson.com", "Pass.123")
- # notify him
- notify_user(user, "Hello Bob!", "/")
- # run command
- command = deleteoldnotifications.Command()
- out = StringIO()
- command.execute(stdout=out)
- command_output = out.getvalue().splitlines()[0].strip()
- self.assertEqual(command_output, 'Old notifications have been deleted')
- self.assertEqual(user.misago_notifications.count(), 1)
- # outdate notifications
- cutoff = timedelta(days=settings.MISAGO_NOTIFICATIONS_MAX_AGE * 2)
- cutoff_date = timezone.now() - cutoff
- user.misago_notifications.update(date=cutoff_date)
- # run command again
- out = StringIO()
- command.execute(stdout=out)
- command_output = out.getvalue().splitlines()[0].strip()
- self.assertEqual(command_output, 'Old notifications have been deleted')
- self.assertEqual(user.misago_notifications.count(), 0)
|