test_user_getters.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from django.contrib.auth import get_user_model
  2. from django.test import TestCase
  3. User = get_user_model()
  4. class UserGettersTests(TestCase):
  5. def test_get_user_by_username(self):
  6. user = User.objects.create_user("User", "test@example.com")
  7. assert User.objects.get_by_username("User") == user
  8. def test_getting_user_by_username_is_case_insensitive(self):
  9. user = User.objects.create_user("User", "test@example.com")
  10. assert User.objects.get_by_username("uSeR") == user
  11. def test_getting_user_by_username_raises_does_not_exist_for_no_result(self):
  12. with self.assertRaises(User.DoesNotExist):
  13. User.objects.get_by_username("user")
  14. def test_getting_user_by_username_supports_diacritics(self):
  15. with self.assertRaises(User.DoesNotExist):
  16. User.objects.get_by_username("łóć")
  17. def test_getting_user_by_username_is_not_doing_fuzzy_matching(self):
  18. user = User.objects.create_user("User", "test@example.com")
  19. with self.assertRaises(User.DoesNotExist):
  20. User.objects.get_by_username("usere")
  21. def test_get_user_by_email(self):
  22. user = User.objects.create_user("User", "test@example.com")
  23. assert User.objects.get_by_email("test@example.com") == user
  24. def test_getting_user_by_email_is_case_insensitive(self):
  25. user = User.objects.create_user("User", "test@example.com")
  26. assert User.objects.get_by_email("tEsT@eXaMplE.com") == user
  27. def test_getting_user_by_email_supports_diacritics(self):
  28. user = User.objects.create_user("User", "łóć@łexĄmple.com")
  29. assert User.objects.get_by_email("łÓć@ŁexĄMple.com") == user
  30. def test_getting_user_by_email_raises_does_not_exist_for_no_result(self):
  31. with self.assertRaises(User.DoesNotExist):
  32. User.objects.get_by_email("test@example.com")
  33. def test_get_user_by_username_using_combined_getter(self):
  34. user = User.objects.create_user("User", "test@example.com")
  35. assert User.objects.get_by_username_or_email("user") == user
  36. def test_get_user_by_email_using_combined_getter(self):
  37. user = User.objects.create_user("User", "test@example.com")
  38. assert User.objects.get_by_username_or_email("test@example.com") == user
  39. def test_combined_getter_handles_username_slug_and_email_collision(self):
  40. email_match = User.objects.create_user("Bob", "test@test.test")
  41. slug_match = User.objects.create_user("TestTestTest", "bob@test.com")
  42. assert User.objects.get_by_username_or_email("test@test.test") == email_match
  43. assert User.objects.get_by_username_or_email("TestTestTest") == slug_match
  44. def test_combined_getter_raises_does_not_exist_for_no_result(self):
  45. with self.assertRaises(User.DoesNotExist):
  46. User.objects.get_by_username_or_email("User")