test_user_creation.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. from django.contrib.auth import get_user_model
  2. from django.test import TestCase
  3. from misago.users.models import Rank
  4. from misago.users.utils import hash_email
  5. User = get_user_model()
  6. class UserCreationTests(TestCase):
  7. def test_user_is_created(self):
  8. user = User.objects.create_user("User", "test@example.com")
  9. assert user.pk
  10. assert user.joined_on
  11. def test_user_is_created_with_username_and_slug(self):
  12. user = User.objects.create_user("UserName", "test@example.com")
  13. assert user.slug == "username"
  14. def test_user_is_created_with_normalized_email_and_email_hash(self):
  15. user = User.objects.create_user("User", "test@eXamPLe.com")
  16. assert user.email == "test@example.com"
  17. assert user.email_hash == hash_email(user.email)
  18. def test_user_is_created_with_online_tracker(self):
  19. user = User.objects.create_user("User", "test@example.com")
  20. assert user.online_tracker
  21. assert user.online_tracker.last_click == user.last_login
  22. def test_user_is_created_with_useable_password(self):
  23. password = "password"
  24. user = User.objects.create_user("UserUserame", "test@example.com", password)
  25. assert user.check_password(password)
  26. def test_user_is_created_with_default_rank(self):
  27. user = User.objects.create_user("User", "test@example.com")
  28. assert user.rank == Rank.objects.get_default()
  29. def test_user_is_created_with_custom_rank(self):
  30. rank = Rank.objects.create(name="Test rank")
  31. user = User.objects.create_user("User", "test@example.com", rank=rank)
  32. assert user.rank == rank
  33. def test_newly_created_user_last_login_is_same_as_join_date(self):
  34. user = User.objects.create_user("User", "test@example.com")
  35. assert user.last_login == user.joined_on
  36. def test_user_is_created_with_authenticated_role(self):
  37. user = User.objects.create_user("User", "test@example.com")
  38. assert user.roles.get(special_role="authenticated")
  39. def test_user_is_created_with_diacritics_in_email(self):
  40. email = "łóć@łexąmple.com"
  41. user = User.objects.create_user("UserName", email)
  42. assert user.email == email
  43. def test_creating_user_without_username_raises_value_error(self):
  44. with self.assertRaises(ValueError):
  45. User.objects.create_user("", "test@example.com")
  46. def test_creating_user_without_email_raises_value_error(self):
  47. with self.assertRaises(ValueError):
  48. User.objects.create_user("User", "")
  49. def test_create_superuser(self):
  50. user = User.objects.create_superuser("User", "test@example.com")
  51. assert user.is_staff
  52. assert user.is_superuser
  53. def test_superuser_is_created_with_team_rank(self):
  54. user = User.objects.create_superuser("User", "test@example.com")
  55. assert "team" in str(user.rank)
  56. def test_creating_superuser_without_staff_status_raises_value_error(self):
  57. with self.assertRaises(ValueError):
  58. user = User.objects.create_superuser(
  59. "User", "test@example.com", is_staff=False
  60. )
  61. def test_creating_superuser_without_superuser_status_raises_value_error(self):
  62. with self.assertRaises(ValueError):
  63. user = User.objects.create_superuser(
  64. "User", "test@example.com", is_superuser=False
  65. )