|
@@ -1,7 +1,54 @@
|
|
|
+from django.core.exceptions import ValidationError
|
|
|
from django.test import TestCase
|
|
|
from misago.users.models import User
|
|
|
|
|
|
|
|
|
+class UserManagerTests(TestCase):
|
|
|
+ def test_create_user(self):
|
|
|
+ """create_user created new user account successfully"""
|
|
|
+ user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
|
|
|
+
|
|
|
+ db_user = User.objects.get(id=user.pk)
|
|
|
+
|
|
|
+ self.assertEqual(user.username, db_user.username)
|
|
|
+ self.assertEqual(user.username_slug, db_user.username_slug)
|
|
|
+ self.assertEqual(user.email, db_user.email)
|
|
|
+ self.assertEqual(user.email_hash, db_user.email_hash)
|
|
|
+
|
|
|
+ def test_create_user_twice(self):
|
|
|
+ """create_user is raising validation error for duplicate users"""
|
|
|
+ user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
|
|
|
+ with self.assertRaises(ValidationError):
|
|
|
+ user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
|
|
|
+
|
|
|
+ def test_create_superuser(self):
|
|
|
+ """create_superuser created new user account successfully"""
|
|
|
+ user = User.objects.create_superuser('Bob', 'bob@test.com', 'Pass.123')
|
|
|
+
|
|
|
+ db_user = User.objects.get(id=user.pk)
|
|
|
+
|
|
|
+ self.assertTrue(user.is_staff)
|
|
|
+ self.assertTrue(db_user.is_staff)
|
|
|
+ self.assertTrue(user.is_superuser)
|
|
|
+ self.assertTrue(db_user.is_superuser)
|
|
|
+
|
|
|
+ def test_get_user(self):
|
|
|
+ """get_by_ methods return user correctly"""
|
|
|
+ user = User.objects.create_user('Bob', 'bob@test.com', 'Pass.123')
|
|
|
+
|
|
|
+ db_user = User.objects.get_by_username(user.username)
|
|
|
+ self.assertEqual(user.pk, db_user.pk)
|
|
|
+
|
|
|
+ db_user = User.objects.get_by_email(user.email)
|
|
|
+ self.assertEqual(user.pk, db_user.pk)
|
|
|
+
|
|
|
+ db_user = User.objects.get_by_username_or_email(user.username)
|
|
|
+ self.assertEqual(user.pk, db_user.pk)
|
|
|
+
|
|
|
+ db_user = User.objects.get_by_username_or_email(user.email)
|
|
|
+ self.assertEqual(user.pk, db_user.pk)
|
|
|
+
|
|
|
+
|
|
|
class UserModelTests(TestCase):
|
|
|
def test_set_username(self):
|
|
|
"""set_username sets username and slug on model"""
|