Extend User from AbstractBaseUser and AnonymousUser
Django-1.8 added _meta classes for User models, which aren't supported by AnonymousUsers, the AbstractBaseUser provides default implementation for _meta classes. SimpleTest has been deprecated since Django-1.6 and was now removed. Unfortunately, this change drops Django-1.6 (and earlier) compatibility. Co-Authored-By: Lin Hua Cheng <os.lcheng@gmail.com> Partially Implements: blueprint django18 Change-Id: Ie243fd2304421694023f579f49f8fa201e761ba3
This commit is contained in:
parent
2fcf6f569a
commit
da2395146e
|
@ -20,7 +20,10 @@ import sys
|
|||
os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_auth.tests.settings'
|
||||
|
||||
import django
|
||||
from django.test import simple as test_simple
|
||||
if django.VERSION < (1, 8, 0):
|
||||
from django.test.simple import DjangoTestSuiteRunner as test_runner
|
||||
else:
|
||||
from django.test.runner import DiscoverRunner as test_runner
|
||||
|
||||
if hasattr(django, 'setup'):
|
||||
django.setup()
|
||||
|
@ -35,7 +38,7 @@ def run(*test_args):
|
|||
"..",
|
||||
)
|
||||
sys.path.insert(0, parent)
|
||||
failures = test_simple.DjangoTestSuiteRunner().run_tests(test_args)
|
||||
failures = test_runner().run_tests(test_args)
|
||||
sys.exit(failures)
|
||||
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ class Token(object):
|
|||
self.serviceCatalog = auth_ref.service_catalog.get_data()
|
||||
|
||||
|
||||
class User(models.AnonymousUser):
|
||||
class User(models.AbstractBaseUser, models.AnonymousUser):
|
||||
"""A User class with some extra special sauce for Keystone.
|
||||
|
||||
In addition to the standard Django user attributes, this class also has
|
||||
|
@ -191,7 +191,7 @@ class User(models.AnonymousUser):
|
|||
services_region=None, user_domain_id=None,
|
||||
user_domain_name=None, domain_id=None, domain_name=None,
|
||||
project_id=None, project_name=None,
|
||||
is_federated=False, unscoped_token=None):
|
||||
is_federated=False, unscoped_token=None, password=None):
|
||||
self.id = id
|
||||
self.pk = id
|
||||
self.token = token
|
||||
|
@ -221,6 +221,9 @@ class User(models.AnonymousUser):
|
|||
self.tenant_id = self.project_id
|
||||
self.tenant_name = self.project_name
|
||||
|
||||
# Required by AbstractBaseUser
|
||||
self.password = None
|
||||
|
||||
def __unicode__(self):
|
||||
return self.username
|
||||
|
||||
|
|
15
tox.ini
15
tox.ini
|
@ -1,7 +1,7 @@
|
|||
[tox]
|
||||
minversion = 1.6
|
||||
skipsdist = True
|
||||
envlist = py27,py27dj14,py27dj15,py27dj16,pep8,py33,py34
|
||||
envlist = py27,py27dj17,py27dj18,pep8,py33,py34
|
||||
|
||||
[testenv]
|
||||
usedevelop = True
|
||||
|
@ -24,22 +24,19 @@ commands =
|
|||
python -m coverage html --include='openstack_auth/*' --omit='openstack_auth/tests/*' -d 'reports'
|
||||
python -m coverage xml --include='openstack_auth/*' --omit='openstack_auth/tests/*'
|
||||
|
||||
[testenv:py27dj16]
|
||||
commands = pip install django>=1.6,<1.7
|
||||
[testenv:py27dj17]
|
||||
commands = pip install django>=1.7,<1.8
|
||||
python openstack_auth/tests/run_tests.py {posargs}
|
||||
|
||||
[testenv:py27dj15]
|
||||
commands = pip install django>=1.5,<1.6
|
||||
python openstack_auth/tests/run_tests.py {posargs}
|
||||
|
||||
[testenv:py27dj14]
|
||||
commands = pip install django>=1.4,<1.5
|
||||
[testenv:py27dj18]
|
||||
commands = pip install django>=1.8,<1.9
|
||||
python openstack_auth/tests/run_tests.py {posargs}
|
||||
|
||||
[testenv:pep8]
|
||||
setenv = DJANGO_SETTINGS_MODULE=openstack_auth.tests.settings
|
||||
commands = flake8
|
||||
|
||||
|
||||
[testenv:venv]
|
||||
commands = {posargs}
|
||||
|
||||
|
|
Loading…
Reference in New Issue