test_removeoldips.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from datetime import timedelta
  2. from io import StringIO
  3. from django.contrib.auth import get_user_model
  4. from django.core.management import call_command
  5. from django.test import TestCase, override_settings
  6. from django.utils import timezone
  7. from misago.users.management.commands import removeoldips
  8. UserModel = get_user_model()
  9. USER_IP = "31.41.51.65"
  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(
  14. "Bob", "bob@bob.com", joined_from_ip=USER_IP
  15. )
  16. out = StringIO()
  17. call_command(removeoldips.Command(), stdout=out)
  18. user_joined_from_ip = UserModel.objects.get(pk=user.pk).joined_from_ip
  19. self.assertEqual(user_joined_from_ip, USER_IP)
  20. def test_removeoldips_old_user(self):
  21. """command removes user's IP if its old"""
  22. joined_on_past = timezone.now() - timedelta(days=50)
  23. user = UserModel.objects.create_user(
  24. "Bob1", "bob1@bob.com", joined_from_ip=USER_IP
  25. )
  26. user.joined_on = joined_on_past
  27. user.save()
  28. out = StringIO()
  29. call_command(removeoldips.Command(), stdout=out)
  30. user_joined_from_ip = UserModel.objects.get(pk=user.pk).joined_from_ip
  31. self.assertIsNone(user_joined_from_ip)
  32. @override_settings(MISAGO_IP_STORE_TIME=None)
  33. def test_not_removing_user_ip(self):
  34. """command is not removing user's IP if removing is disabled"""
  35. user = UserModel.objects.create_user(
  36. "Bob1", "bob1@bob.com", joined_from_ip=USER_IP
  37. )
  38. out = StringIO()
  39. call_command(removeoldips.Command(), stdout=out)
  40. command_output = out.getvalue().splitlines()[0].strip()
  41. self.assertEqual(command_output, "Old IP removal is disabled.")
  42. user_joined_from_ip = UserModel.objects.get(pk=user.pk).joined_from_ip
  43. self.assertEqual(user_joined_from_ip, USER_IP)