test_user_model.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from django.core.exceptions import ValidationError
  2. from django.test import TestCase
  3. from misago.users.models import User
  4. class UserManagerTests(TestCase):
  5. def test_create_user(self):
  6. """create_user created new user account successfully"""
  7. user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  8. db_user = User.objects.get(id=user.pk)
  9. self.assertEqual(user.username, db_user.username)
  10. self.assertEqual(user.username_slug, db_user.username_slug)
  11. self.assertEqual(user.email, db_user.email)
  12. self.assertEqual(user.email_hash, db_user.email_hash)
  13. def test_create_user_twice(self):
  14. """create_user is raising validation error for duplicate users"""
  15. user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  16. with self.assertRaises(ValidationError):
  17. user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  18. def test_create_superuser(self):
  19. """create_superuser created new user account successfully"""
  20. user = User.objects.create_superuser('Bob', 'bob@test.com', 'Pass.123')
  21. db_user = User.objects.get(id=user.pk)
  22. self.assertTrue(user.is_staff)
  23. self.assertTrue(db_user.is_staff)
  24. self.assertTrue(user.is_superuser)
  25. self.assertTrue(db_user.is_superuser)
  26. def test_get_user(self):
  27. """get_by_ methods return user correctly"""
  28. user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
  29. db_user = User.objects.get_by_username(user.username)
  30. self.assertEqual(user.pk, db_user.pk)
  31. db_user = User.objects.get_by_email(user.email)
  32. self.assertEqual(user.pk, db_user.pk)
  33. db_user = User.objects.get_by_username_or_email(user.username)
  34. self.assertEqual(user.pk, db_user.pk)
  35. db_user = User.objects.get_by_username_or_email(user.email)
  36. self.assertEqual(user.pk, db_user.pk)
  37. class UserModelTests(TestCase):
  38. def test_set_username(self):
  39. """set_username sets username and slug on model"""
  40. user = User()
  41. user.set_username('Boberson')
  42. self.assertEqual(user.username, 'Boberson')
  43. self.assertEqual(user.username_slug, 'boberson')
  44. self.assertEqual(user.get_username(), 'Boberson')
  45. self.assertEqual(user.get_full_name(), 'Boberson')
  46. self.assertEqual(user.get_short_name(), 'Boberson')
  47. def test_set_email(self):
  48. """set_email sets email and hash on model"""
  49. user = User()
  50. user.set_email('bOb@TEst.com')
  51. self.assertEqual(user.email, 'bOb@test.com')
  52. self.assertTrue(user.email_hash)