diff --git a/.travis.yml b/.travis.yml index 31ffd3fce..b344a7538 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,24 +3,17 @@ python: "2.7" sudo: false env: - - TOX_ENV=py26-django14 - - TOX_ENV=py26-django15 - - TOX_ENV=py26-django16 - - TOX_ENV=py27-django14 - - TOX_ENV=py27-django15 - - TOX_ENV=py27-django16 - TOX_ENV=py27-django17 - TOX_ENV=py27-django18 - TOX_ENV=py27-django19 - - TOX_ENV=py33-django15 - - TOX_ENV=py33-django16 + - TOX_ENV=py32-django17 + - TOX_ENV=py32-django18 - TOX_ENV=py33-django17 - TOX_ENV=py33-django18 - - TOX_ENV=py34-django15 - - TOX_ENV=py34-django16 - TOX_ENV=py34-django17 - TOX_ENV=py34-django18 - TOX_ENV=py34-django19 + - TOX_ENV=py35-django18 - TOX_ENV=py35-django19 - TOX_ENV=docs @@ -28,6 +21,7 @@ matrix: # Python 3.5 not yet available on travis, watch this to see when it is. fast_finish: true allow_failures: + - env: TOX_ENV=py35-django18 - env: TOX_ENV=py35-django19 install: diff --git a/oauth2_provider/oauth2_validators.py b/oauth2_provider/oauth2_validators.py index cc669f04f..3b42dad37 100644 --- a/oauth2_provider/oauth2_validators.py +++ b/oauth2_provider/oauth2_validators.py @@ -1,5 +1,6 @@ from __future__ import unicode_literals +import six import base64 import binascii import logging @@ -60,6 +61,11 @@ def _authenticate_basic_auth(self, request): except AttributeError: encoding = 'utf-8' + # Encode auth_string to bytes. This is needed for python3.2 compatibility + # because b64decode function only supports bytes type in input. + if isinstance(auth_string, six.string_types): + auth_string = auth_string.encode(encoding) + try: b64_decoded = base64.b64decode(auth_string) except (TypeError, binascii.Error): diff --git a/requirements/base.txt b/requirements/base.txt index 1dd139d74..2a471eb19 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ Sphinx==1.3.1 South==1.0 oauthlib==1.0.1 -django-braces==1.4.0 +django-braces==1.8.1 six diff --git a/requirements/testing.txt b/requirements/testing.txt index 544875e36..fff8bc1f1 100644 --- a/requirements/testing.txt +++ b/requirements/testing.txt @@ -1,3 +1,2 @@ -r optional.txt -coverage mock==1.0.1 diff --git a/tox.ini b/tox.ini index def45b189..305121091 100644 --- a/tox.ini +++ b/tox.ini @@ -1,138 +1,22 @@ [tox] envlist = - {py26}-django{14,15,16}, - {py27}-django{14,15,16,17,18,19}, - {py33}-django{15,16,17,18}, - {py34}-django{15,16,17,18,19}, - {py35}-django{19}, + {py27}-django{17,18,19}, + {py32}-django{17,18} + {py33}-django{17,18}, + {py34}-django{17,18,19}, + {py35}-django{18,19}, docs, flake8 [testenv] -downloadcache = {toxworkdir}/cache/ commands=coverage run -a runtests.py deps = - -r{toxinidir}/requirements/testing.txt - -[testenv:py26-django14] -basepython = python2.6 -deps = - Django<1.5 - django-discover-runner - {[testenv]deps} - -[testenv:py26-django15] -basepython = python2.6 -deps = - Django<1.6 - django-discover-runner - {[testenv]deps} - -[testenv:py26-django16] -basepython = python2.6 -deps = - Django<1.7 - {[testenv]deps} - -[testenv:py27-django14] -basepython = python2.7 -deps = - Django<1.5 - django-discover-runner - {[testenv]deps} - -[testenv:py27-django15] -basepython = python2.7 -deps = - Django<1.6 - django-discover-runner - {[testenv]deps} - -[testenv:py27-django16] -basepython = python2.7 -deps = - Django<1.7 - {[testenv]deps} - -[testenv:py27-django17] -basepython = python2.7 -deps = - Django<1.8 - {[testenv]deps} - -[testenv:py27-django18] -basepython = python2.7 -deps = - Django<1.9 - {[testenv]deps} - -[testenv:py27-django19] -basepython = python2.7 -deps = - git+https://github.com/django/django.git@stable/1.9.x#egg=Django - {[testenv]deps} - -[testenv:py33-django15] -basepython = python3.3 -deps = - Django<1.6 - django-discover-runner - {[testenv]deps} - -[testenv:py33-django16] -basepython = python3.3 -deps = - Django<1.7 - {[testenv]deps} - -[testenv:py33-django17] -basepython = python3.3 -deps = - Django<1.8 - {[testenv]deps} - -[testenv:py33-django18] -basepython = python3.3 -deps = - Django<1.9 - {[testenv]deps} - -[testenv:py34-django15] -basepython = python3.4 -deps = - Django<1.6 - django-discover-runner - {[testenv]deps} - -[testenv:py34-django16] -basepython = python3.4 -deps = - Django<1.7 - {[testenv]deps} - -[testenv:py34-django17] -basepython = python3.4 -deps = - Django<1.8 - {[testenv]deps} - -[testenv:py34-django18] -basepython = python3.4 -deps = - Django<1.9 - {[testenv]deps} - -[testenv:py34-django19] -basepython = python3.4 -deps = - git+https://github.com/django/django.git@stable/1.9.x#egg=Django - {[testenv]deps} - -[testenv:py35-django19] -basepython = python3.5 -deps = - git+https://github.com/django/django.git@stable/1.9.x#egg=Django - {[testenv]deps} + django17: Django==1.7.10 + django18: Django==1.8.6 + django19: https://www.djangoproject.com/download/1.9rc1/tarball/ + py32: coverage<4 + py{27,33,34,35}: coverage + -rrequirements/testing.txt [testenv:docs] basepython=python