diff --git a/.travis.yml b/.travis.yml index 1261ffcb..f766a454 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,27 +8,51 @@ env: - TOX_ENV=py27-django1.6-drf2.4.3 - TOX_ENV=py27-django1.6-drf2.4.4 - TOX_ENV=py27-django1.6-drf3.0.0 + - TOX_ENV=py27-django1.6-drf3.1.0 - TOX_ENV=py27-django1.7-drf2.4.3 - TOX_ENV=py27-django1.7-drf2.4.4 - TOX_ENV=py27-django1.7-drf3.0.0 + - TOX_ENV=py27-django1.7-drf3.1.0 + - TOX_ENV=py27-django1.8-drf2.4.3 + - TOX_ENV=py27-django1.8-drf2.4.4 + - TOX_ENV=py27-django1.8-drf3.0.0 + - TOX_ENV=py27-django1.8-drf3.1.0 - TOX_ENV=py32-django1.6-drf2.4.3 - TOX_ENV=py32-django1.6-drf2.4.4 - TOX_ENV=py32-django1.6-drf3.0.0 + - TOX_ENV=py32-django1.6-drf3.1.0 - TOX_ENV=py32-django1.7-drf2.4.3 - TOX_ENV=py32-django1.7-drf2.4.4 - TOX_ENV=py32-django1.7-drf3.0.0 + - TOX_ENV=py32-django1.7-drf3.1.0 + - TOX_ENV=py32-django1.8-drf2.4.3 + - TOX_ENV=py32-django1.8-drf2.4.4 + - TOX_ENV=py32-django1.8-drf3.0.0 + - TOX_ENV=py32-django1.8-drf3.1.0 - TOX_ENV=py33-django1.6-drf2.4.3 - TOX_ENV=py33-django1.6-drf2.4.4 - TOX_ENV=py33-django1.6-drf3.0.0 + - TOX_ENV=py33-django1.6-drf3.1.0 - TOX_ENV=py33-django1.7-drf2.4.3 - TOX_ENV=py33-django1.7-drf2.4.4 - TOX_ENV=py33-django1.7-drf3.0.0 + - TOX_ENV=py33-django1.7-drf3.1.0 + - TOX_ENV=py33-django1.8-drf2.4.3 + - TOX_ENV=py33-django1.8-drf2.4.4 + - TOX_ENV=py33-django1.8-drf3.0.0 + - TOX_ENV=py33-django1.8-drf3.1.0 - TOX_ENV=py34-django1.6-drf2.4.3 - TOX_ENV=py34-django1.6-drf2.4.4 - TOX_ENV=py34-django1.6-drf3.0.0 + - TOX_ENV=py34-django1.6-drf3.1.0 - TOX_ENV=py34-django1.7-drf2.4.3 - TOX_ENV=py34-django1.7-drf2.4.4 - TOX_ENV=py34-django1.7-drf3.0.0 + - TOX_ENV=py34-django1.7-drf3.1.0 + - TOX_ENV=py34-django1.8-drf2.4.3 + - TOX_ENV=py34-django1.8-drf2.4.4 + - TOX_ENV=py34-django1.8-drf3.0.0 + - TOX_ENV=py34-django1.8-drf3.1.0 matrix: fast_finish: true diff --git a/README.rst b/README.rst index a39ffc52..9a85313c 100644 --- a/README.rst +++ b/README.rst @@ -23,8 +23,8 @@ Requirements ------------ - Python (2.7, 3.2, 3.3, 3.4) -- Django (1.6, 1.7) -- Django REST Framework (2.4.3, 2.4.4, 3.0.0) +- Django (1.6, 1.7, 1.8) +- Django REST Framework (2.4.3, 2.4.4, 3.0.0, 3.1.0) Installation ------------ diff --git a/tests/conftest.py b/tests/conftest.py index 5909129b..fe079bc7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,4 +1,5 @@ def pytest_configure(): + import django from django.conf import settings settings.configure( @@ -52,6 +53,9 @@ def pytest_configure(): ) try: + if django.VERSION >= (1, 8): + # django-oauth2-provider does not support Django1.8 + raise ImportError import provider # NOQA except ImportError: pass diff --git a/tests/test_authentication.py b/tests/test_authentication.py index d58ad51d..3cad6f95 100644 --- a/tests/test_authentication.py +++ b/tests/test_authentication.py @@ -5,8 +5,30 @@ from django.contrib.auth import get_user_model from rest_framework import permissions, status -from rest_framework.authentication import OAuth2Authentication -from rest_framework.compat import oauth2_provider +try: + from rest_framework_oauth.authentication import OAuth2Authentication +except ImportError: + try: + from rest_framework.authentication import OAuth2Authentication + except ImportError: + OAuth2Authentication = None +try: + try: + from rest_framework_oauth.compat import oauth2_provider + from rest_framework_oauth.compat.oauth2_provider import oauth2 + except ImportError: + # if oauth2 module can not be imported, skip the tests, + # because models have not been initialized. + oauth2_provider = None +except ImportError: + try: + from rest_framework.compat import oauth2_provider + from rest_framework.compat.oauth2_provider import oauth2 # NOQA + except ImportError: + # if oauth2 module can not be imported, skip the tests, + # because models have not been initialized. + oauth2_provider = None + from rest_framework.test import APIRequestFactory, APIClient from rest_framework.views import APIView diff --git a/tox.ini b/tox.ini index 5b24031c..0916c932 100644 --- a/tox.ini +++ b/tox.ini @@ -1,22 +1,25 @@ [tox] envlist = py27-{flake8,docs}, - {py27,py33,py34}-django{1.6,1.7}-drf{2.4.3,2.4.4,3.0.0} + {py27,py33,py34}-django{1.6,1.7,1.8}-drf{2.4.3,2.4.4,3.0.0,3.1.0} [testenv] -commands = ./runtests.py --fast +commands = ./runtests.py --fast {posargs} setenv = PYTHONDONTWRITEBYTECODE=1 deps = django1.6: Django==1.6.8 django1.7: Django==1.7.1 + django1.8: Django==1.8 drf2.4.3: djangorestframework==2.4.3 drf2.4.4: djangorestframework==2.4.4 drf3.0.0: djangorestframework==3.0.0 - py27-django1.6-drf{2.4.3,2.4.4,3.0.0}: oauth2==1.5.211 - py27-django1.6-drf{2.4.3,2.4.4,3.0.0}: django-oauth-plus==2.2.1 - py27-django1.6-drf{2.4.3,2.4.4,3.0.0}: django-oauth2-provider==0.2.4 - pytest-django==2.6.1 + drf3.1.0: djangorestframework==3.1.0 + py27-django1.6-drf{2.4.3,2.4.4,3.0.0,3.1.0}: oauth2==1.5.211 + py27-django1.6-drf{2.4.3,2.4.4,3.0.0,3.1.0}: django-oauth-plus==2.2.6 + py27-django1.6-drf{2.4.3,2.4.4,3.0.0,3.1.0}: django-oauth2-provider==0.2.6.1 + pytest-django==2.8.0 + py27-django{1.6,1.7,1.8}-drf3.1.0: djangorestframework-oauth==1.0.1 [testenv:py27-flake8] commands = ./runtests.py --lintonly