Skip to content

Add DRF 3.7 and Django 2.0 to the test matrix. #394

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jan 24, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 28 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,34 @@
language: python
sudo: false
cache: pip
python:
- "2.7"
- "3.4"
- "3.5"
- "3.6"
env:
- DJANGO=">=1.11,<1.12" DRF=">=3.6.3,<3.7"
# Favor explicit over implicit and use an explicit build matrix.
matrix:
include:
- python: 2.7
env: DJANGO=">=1.11,<2.0" DRF=">=3.6.3,<3.7"
- python: 2.7
env: DJANGO=">=1.11,<2.0" DRF=">=3.7.0,<3.8"

- python: 3.4
env: DJANGO=">=1.11,<2.0" DRF=">=3.6.3,<3.7"
- python: 3.4
env: DJANGO=">=1.11,<2.0" DRF=">=3.7.0,<3.8"
- python: 3.4
env: DJANGO=">=2.0,<2.1" DRF=">=3.7.0,<3.8"

- python: 3.5
env: DJANGO=">=1.11,<2.0" DRF=">=3.6.3,<3.7"
- python: 3.5
env: DJANGO=">=1.11,<2.0" DRF=">=3.7.0,<3.8"
- python: 3.5
env: DJANGO=">=2.0,<2.1" DRF=">=3.7.0,<3.8"

- python: 3.6
env: DJANGO=">=1.11,<2.0" DRF=">=3.6.3,<3.7"
- python: 3.6
env: DJANGO=">=1.11,<2.0" DRF=">=3.7.0,<3.8"
- python: 3.6
env: DJANGO=">=2.0,<2.1" DRF=">=3.7.0,<3.8"
before_install:
# Force an upgrade of py & pytest to avoid VersionConflict
- pip install --upgrade py
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
v2.4.0

* Add support for Django REST Framework 3.7.x.
* Add support for Django 2.0.
* Drop support for Django 1.8 - 1.10 (EOL)
* Drop support for Django REST Framework < 3.6.3
(3.6.3 is the first to support Django 1.11)
Expand Down
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ Requirements
------------

1. Python (2.7, 3.4, 3.5, 3.6)
2. Django (1.11)
3. Django REST Framework (3.6)
2. Django (1.11, 2.0)
3. Django REST Framework (3.6, 3.7)

------------
Installation
Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ like the following:
## Requirements

1. Python (2.7, 3.4, 3.5, 3.6)
2. Django (1.11)
3. Django REST Framework (3.6)
2. Django (1.11, 2.0)
3. Django REST Framework (3.6, 3.7)

## Installation

Expand Down
14 changes: 8 additions & 6 deletions example/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class Meta:
class Author(BaseModel):
name = models.CharField(max_length=50)
email = models.EmailField()
type = models.ForeignKey(AuthorType, null=True)
type = models.ForeignKey(AuthorType, null=True, on_delete=models.CASCADE)

def __str__(self):
return self.name
Expand All @@ -71,7 +71,7 @@ class Meta:

@python_2_unicode_compatible
class AuthorBio(BaseModel):
author = models.OneToOneField(Author, related_name='bio')
author = models.OneToOneField(Author, related_name='bio', on_delete=models.CASCADE)
body = models.TextField()

def __str__(self):
Expand All @@ -83,7 +83,7 @@ class Meta:

@python_2_unicode_compatible
class Entry(BaseModel):
blog = models.ForeignKey(Blog)
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
headline = models.CharField(max_length=255)
body_text = models.TextField(null=True)
pub_date = models.DateField(null=True)
Expand All @@ -103,12 +103,13 @@ class Meta:

@python_2_unicode_compatible
class Comment(BaseModel):
entry = models.ForeignKey(Entry, related_name='comments')
entry = models.ForeignKey(Entry, related_name='comments', on_delete=models.CASCADE)
body = models.TextField()
author = models.ForeignKey(
Author,
null=True,
blank=True
blank=True,
on_delete=models.CASCADE,
)

def __str__(self):
Expand All @@ -133,7 +134,8 @@ class ResearchProject(Project):
@python_2_unicode_compatible
class Company(models.Model):
name = models.CharField(max_length=100)
current_project = models.ForeignKey(Project, related_name='companies')
current_project = models.ForeignKey(
Project, related_name='companies', on_delete=models.CASCADE)
future_projects = models.ManyToManyField(Project)

def __str__(self):
Expand Down
2 changes: 1 addition & 1 deletion example/tests/integration/test_includes.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pytest
from django.core.urlresolvers import reverse
from django.urls import reverse

from example.tests.utils import load_json

Expand Down
2 changes: 1 addition & 1 deletion example/tests/integration/test_meta.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from datetime import datetime

import pytest
from django.core.urlresolvers import reverse
from django.urls import reverse

from example.tests.utils import load_json

Expand Down
2 changes: 1 addition & 1 deletion example/tests/integration/test_model_resource_name.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from copy import deepcopy

import pytest
from django.core.urlresolvers import reverse
from django.urls import reverse
from rest_framework import status

from example import models, serializers, views
Expand Down
2 changes: 1 addition & 1 deletion example/tests/integration/test_non_paginated_responses.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pytest
from django.core.urlresolvers import reverse
from django.urls import reverse

from rest_framework_json_api.pagination import PageNumberPagination

Expand Down
2 changes: 1 addition & 1 deletion example/tests/integration/test_pagination.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pytest
from django.core.urlresolvers import reverse
from django.urls import reverse

from example.tests.utils import load_json

Expand Down
2 changes: 1 addition & 1 deletion example/tests/integration/test_polymorphism.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import random

import pytest
from django.core.urlresolvers import reverse
from django.urls import reverse

from example.tests.utils import load_json

Expand Down
2 changes: 1 addition & 1 deletion example/tests/integration/test_sparse_fieldsets.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pytest
from django.core.urlresolvers import reverse
from django.urls import reverse

pytestmark = pytest.mark.django_db

Expand Down
2 changes: 1 addition & 1 deletion example/tests/test_format_keys.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.utils import encoding

from example.tests import TestBase
Expand Down
2 changes: 1 addition & 1 deletion example/tests/test_generic_validation.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from django.core.urlresolvers import reverse
from django.urls import reverse

from example.tests import TestBase
from example.tests.utils import load_json
Expand Down
2 changes: 1 addition & 1 deletion example/tests/test_generic_viewset.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.conf import settings
from django.core.urlresolvers import reverse
from django.urls import reverse

from example.tests import TestBase
from example.tests.utils import load_json
Expand Down
2 changes: 1 addition & 1 deletion example/tests/test_model_viewsets.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse
from django.urls import reverse
from django.utils import encoding

from example.tests import TestBase
Expand Down
2 changes: 1 addition & 1 deletion example/tests/test_multiple_id_mixin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json

from django.core.urlresolvers import reverse
from django.urls import reverse
from django.utils import encoding

from example.tests import TestBase
Expand Down
2 changes: 1 addition & 1 deletion example/tests/test_serializers.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest
from django.core.urlresolvers import reverse
from django.test import TestCase
from django.urls import reverse
from django.utils import timezone

from rest_framework_json_api.serializers import ResourceIdentifierObjectSerializer
Expand Down
2 changes: 1 addition & 1 deletion example/tests/test_sideload_resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""
import json

from django.core.urlresolvers import reverse
from django.urls import reverse
from django.utils import encoding

from example.tests import TestBase
Expand Down
2 changes: 1 addition & 1 deletion requirements-development.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-e .
django-polymorphic
django-polymorphic>=2.0
Faker
isort
mock
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def get_package_data(package):
'factory-boy<2.9.0',
'pytest-django',
'pytest>=2.8,<3',
'django-polymorphic',
'django-polymorphic>=2.0',
'packaging',
'django-debug-toolbar'
] + mock,
Expand Down
3 changes: 2 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
[tox]
envlist =
py{27,34,35,36}-django111-drf{36},
py{27,34,35,36}-django111-drf{36,37},

[testenv]
deps =
django111: Django>=1.11,<1.12
drf36: djangorestframework>=3.6.3,<3.7
drf37: djangorestframework>=3.7.0,<3.8

setenv =
PYTHONPATH = {toxinidir}
Expand Down