test_deleteprofilefield.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from io import StringIO
  2. from django.contrib.auth import get_user_model
  3. from django.core.management import call_command
  4. from django.test import TestCase
  5. from misago.users.management.commands import deleteprofilefield
  6. UserModel = get_user_model()
  7. class DeleteProfileFieldTests(TestCase):
  8. def test_no_fieldname(self):
  9. """utility has no showstoppers when no fieldname is given"""
  10. out = StringIO()
  11. call_command(deleteprofilefield.Command(), stderr=out)
  12. command_output = out.getvalue().splitlines()[0].strip()
  13. self.assertEqual(command_output, "Specify fieldname to delete.")
  14. def test_no_fields_set(self):
  15. """utility has no showstoppers when no fields are set"""
  16. out = StringIO()
  17. call_command(deleteprofilefield.Command(), 'gender', stdout=out)
  18. command_output = out.getvalue().splitlines()[0].strip()
  19. self.assertEqual(command_output, '"gender" profile field has been deleted from 0 users.')
  20. def test_delete_fields(self):
  21. """utility has no showstoppers when no fields are set"""
  22. user = UserModel.objects.create_user('Bob', 'bob@bob.com', 'pass123')
  23. user.profile_fields = {'gender': 'male', 'bio': "Yup!"}
  24. user.save()
  25. out = StringIO()
  26. call_command(deleteprofilefield.Command(), 'gender', stdout=out)
  27. command_output = out.getvalue().splitlines()[0].strip()
  28. self.assertEqual(command_output, '"gender" profile field has been deleted from 1 users.')
  29. user = UserModel.objects.get(pk=user.pk)
  30. self.assertEqual(user.profile_fields, {'bio': "Yup!"})