diff --git a/openstack_auth/tests/run_tests.py b/openstack_auth/tests/run_tests.py index 32ec848a..b3179672 100644 --- a/openstack_auth/tests/run_tests.py +++ b/openstack_auth/tests/run_tests.py @@ -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) diff --git a/openstack_auth/user.py b/openstack_auth/user.py index 132e37be..007da5a4 100644 --- a/openstack_auth/user.py +++ b/openstack_auth/user.py @@ -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 diff --git a/tox.ini b/tox.ini index ec31817b..2745e727 100644 --- a/tox.ini +++ b/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}