Skip to content

Commit

Permalink
Added support for Django 1.9 and Python 3.5
Browse files Browse the repository at this point in the history
  • Loading branch information
dfunckt committed Dec 5, 2015
1 parent 08aa03d commit 7314d63
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 20 deletions.
35 changes: 31 additions & 4 deletions .travis.yml
@@ -1,23 +1,50 @@
# ----------------------------------------
# Python support matrix per Django version
#
# 2.6 1.5 1.6
# 2.7 1.5 1.6 1.7 1.8 1.9
# 3.3 1.5 1.6 1.7 1.8
# 3.4 1.7 1.8 1.9
# 3.5 1.8 1.9
# ----------------------------------------
sudo: false
language: python
python:
- "2.6"
- "2.7"
- "3.3"
- "3.4"
- "3.5"
- "pypy"
- "pypy3"
env:
- DJANGO='Django<1.6'
- DJANGO='Django<1.7'
- DJANGO='Django<1.8'
- DJANGO='Django<1.9'
- DJANGO='Django<1.6' # Django 1.5
- DJANGO='Django<1.7' # Django 1.6
- DJANGO='Django<1.8' # Django 1.7
- DJANGO='Django<1.9' # Django 1.8
- DJANGO='Django<1.10' # Django 1.9
matrix:
exclude:
- python: "2.6"
env: DJANGO='Django<1.8'
- python: "2.6"
env: DJANGO='Django<1.9'
- python: "2.6"
env: DJANGO='Django<1.10'
- python: "3.3"
env: DJANGO='Django<1.10'
- python: "3.4"
env: DJANGO='Django<1.6'
- python: "3.4"
env: DJANGO='Django<1.7'
- python: "3.5"
env: DJANGO='Django<1.6'
- python: "3.5"
env: DJANGO='Django<1.7'
- python: "3.5"
env: DJANGO='Django<1.8'
- python: "pypy3"
env: DJANGO='Django<1.10'
install:
- 'pip install "${DJANGO}"'
- pip install coveralls
Expand Down
1 change: 1 addition & 0 deletions setup.py
Expand Up @@ -73,5 +73,6 @@ def get_version(version):
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
],
)
28 changes: 28 additions & 0 deletions tests/testapp/migrations/0001_initial.py
@@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9 on 2015-12-05 09:27
from __future__ import unicode_literals

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

initial = True

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]

operations = [
migrations.CreateModel(
name='Book',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('isbn', models.CharField(max_length=50, unique=True)),
('title', models.CharField(max_length=100)),
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
]
Empty file.
32 changes: 24 additions & 8 deletions tests/testapp/settings.py
Expand Up @@ -5,9 +5,9 @@
DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
ADMINS = [
('test@example.com', 'Administrator'),
)
]

DATABASES = {
'default': {
Expand All @@ -16,29 +16,45 @@
},
}

INSTALLED_APPS = (
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'django.contrib.sessions',
'rules',
'testapp',
)
]

MIDDLEWARE_CLASSES = (
MIDDLEWARE_CLASSES = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
]

AUTHENTICATION_BACKENDS = (
AUTHENTICATION_BACKENDS = [
'rules.permissions.ObjectPermissionBackend',
'django.contrib.auth.backends.ModelBackend',
)
]

CACHE_BACKEND = 'locmem://'

SECRET_KEY = 'thats-a-secret'

ROOT_URLCONF = 'testapp.urls'

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
14 changes: 8 additions & 6 deletions tests/testapp/urls.py
@@ -1,19 +1,21 @@
from django.conf.urls import include, url
from django.contrib import admin

from .views import BookUpdateView, BookDeleteView, ViewThatRaises, ViewWithPermissionList
from .views import (change_book, delete_book,
view_that_raises, view_with_object, view_with_permission_list,
BookUpdateView, BookDeleteView, ViewThatRaises, ViewWithPermissionList)

admin.autodiscover()

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),

# Function-based views
url(r'^(?P<book_id>\d+)/change/$', 'testapp.views.change_book', name='change_book'),
url(r'^(?P<book_id>\d+)/delete/$', 'testapp.views.delete_book', name='delete_book'),
url(r'^(?P<book_id>\d+)/raise/$', 'testapp.views.view_that_raises', name='view_that_raises'),
url(r'^(?P<book_id>\d+)/object/$', 'testapp.views.view_with_object', name='view_with_object'),
url(r'^(?P<book_id>\d+)/list/$', 'testapp.views.view_with_permission_list', name='view_with_permission_list'),
url(r'^(?P<book_id>\d+)/change/$', change_book, name='change_book'),
url(r'^(?P<book_id>\d+)/delete/$', delete_book, name='delete_book'),
url(r'^(?P<book_id>\d+)/raise/$', view_that_raises, name='view_that_raises'),
url(r'^(?P<book_id>\d+)/object/$', view_with_object, name='view_with_object'),
url(r'^(?P<book_id>\d+)/list/$', view_with_permission_list, name='view_with_permission_list'),

# Class-based views
url(r'^cbv/(?P<book_id>\d+)/change/$', BookUpdateView.as_view(), name='cbv.change_book'),
Expand Down
10 changes: 8 additions & 2 deletions tox.ini
@@ -1,7 +1,12 @@
[tox]
envlist =
{py26,py27,py33,py34,pypy,pypy3}-django{15,16},
{py27,py33,py34,pypy,pypy3}-django{17,18}
{py26}-django{15,16},
{py27}-django{15,16,17,18,19},
{py33}-django{15,16,17,18},
{py34}-django{17,18,19},
{py35}-django{18,19},
{pypy}-django{15,16,17,18,19},
{pypy3}-django{15,16,17,18}

[testenv]
deps =
Expand All @@ -10,6 +15,7 @@ deps =
django16: Django>=1.6,<1.7
django17: Django>=1.7,<1.8
django18: Django>=1.8,<1.9
django19: Django>=1.9,<1.10

commands =
{envbindir}/python runtests.py --nologcapture --nocapture {posargs}

0 comments on commit 7314d63

Please sign in to comment.