test_removeoldips.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from datetime import timedelta
  2. from django.contrib.auth import get_user_model
  3. from django.core.management import call_command
  4. from django.test import TestCase, override_settings
  5. from django.utils import timezone
  6. from django.utils.six import StringIO
  7. from misago.core.utils import ANONYMOUS_IP
  8. from misago.users.management.commands import removeoldips
  9. UserModel = get_user_model()
  10. class RemoveOldIpsTests(TestCase):
  11. def test_removeoldips_recent_user(self):
  12. """command is not removing user's IP if its recent"""
  13. user = UserModel.objects.create_user('Bob', 'bob@bob.com')
  14. call_command(removeoldips.Command())
  15. user_joined_from_ip = UserModel.objects.get(pk=user.pk).joined_from_ip
  16. self.assertNotEqual(user_joined_from_ip, ANONYMOUS_IP)
  17. def test_removeoldips_old_user(self):
  18. """command removes user's IP if its old"""
  19. joined_on_past = timezone.now() - timedelta(days=50)
  20. user = UserModel.objects.create_user('Bob1', 'bob1@bob.com')
  21. user.joined_on = joined_on_past
  22. user.save()
  23. call_command(removeoldips.Command())
  24. user_joined_from_ip = UserModel.objects.get(pk=user.pk).joined_from_ip
  25. self.assertEqual(user_joined_from_ip, ANONYMOUS_IP)
  26. @override_settings(MISAGO_IP_STORE_TIME=None)
  27. def test_not_removing_user_ip(self):
  28. """command is not removing user's IP if removing is disabled"""
  29. user = UserModel.objects.create_user('Bob1', 'bob1@bob.com')
  30. out = StringIO()
  31. call_command(removeoldips.Command(), stdout=out)
  32. command_output = out.getvalue().splitlines()[0].strip()
  33. self.assertEqual(command_output, "Old IP removal is disabled.")
  34. user_joined_from_ip = UserModel.objects.get(pk=user.pk).joined_from_ip
  35. self.assertNotEqual(user_joined_from_ip, ANONYMOUS_IP)