Custom User Model for Django 1.5

This commit is contained in:
Nicolas Cortot
2013-04-17 21:38:11 +02:00
parent 5de4812477
commit 485047f20b
5 changed files with 180 additions and 1 deletions

View File

@@ -14,9 +14,16 @@ try:
from django.conf import settings
from django.core.paginator import Paginator
settings.configure(USE_TZ=True)
settings.configure(
USE_TZ=True,
INSTALLED_APPS=('django.contrib.auth', 'mongoengine.django.mongo_auth'),
AUTH_USER_MODEL=('mongo_auth.MongoUser'),
)
from django.contrib.auth import authenticate, get_user_model
from django.contrib.sessions.tests import SessionTestsMixin
from mongoengine.django.auth import User
from mongoengine.django.mongo_auth.models import MongoUser, MongoUserManager
from mongoengine.django.sessions import SessionStore, MongoSession
except Exception, err:
if PY3:
@@ -156,6 +163,7 @@ class QuerySetTest(unittest.TestCase):
rendered = template.render(Context({'users': users}))
self.assertEqual(rendered, 'AB ABCD CD')
class MongoDBSessionTest(SessionTestsMixin, unittest.TestCase):
backend = SessionStore
@@ -184,5 +192,47 @@ class MongoDBSessionTest(SessionTestsMixin, unittest.TestCase):
session = SessionStore(key)
self.assertTrue('test_expire' in session, 'Session has expired before it is expected')
class MongoAuthTest(unittest.TestCase):
user_data = {
'username': 'user',
'email': 'user@example.com',
'password': 'test',
}
def setUp(self):
if PY3:
raise SkipTest('django does not have Python 3 support')
connect(db='mongoenginetest')
User.drop_collection()
super(MongoAuthTest, self).setUp()
def test_user_model(self):
self.assertEqual(get_user_model(), MongoUser)
def test_user_manager(self):
manager = get_user_model()._default_manager
self.assertIsInstance(manager, MongoUserManager)
def test_user_manager_exception(self):
manager = get_user_model()._default_manager
self.assertRaises(MongoUser.DoesNotExist, manager.get,
username='not found')
def test_create_user(self):
manager = get_user_model()._default_manager
user = manager.create_user(**self.user_data)
self.assertIsInstance(user, User)
db_user = User.objects.get(username='user')
self.assertEqual(user.id, db_user.id)
def test_authenticate(self):
get_user_model()._default_manager.create_user(**self.user_data)
user = authenticate(username='user', password='fail')
self.assertIsNone(user)
user = authenticate(username='user', password='test')
db_user = User.objects.get(username='user')
self.assertEqual(user.id, db_user.id)
if __name__ == '__main__':
unittest.main()