Skip to content

Commit 4d47f33

Browse files
authored
Merge pull request #58 from joehybird/master
Add support for Django 2.0, 2.1 & 2.2
2 parents 5fc3a5b + 0e780f8 commit 4d47f33

File tree

10 files changed

+74
-56
lines changed

10 files changed

+74
-56
lines changed

.travis.yml

+21-33
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,24 @@
11
language: python
2-
matrix:
3-
include:
4-
- python: 2.7
5-
env: TOX_ENV=py27-django18
6-
- python: 2.7
7-
env: TOX_ENV=py27-django19
8-
- python: 2.7
9-
env: TOX_ENV=py27-django110
10-
- python: 2.7
11-
env: TOX_ENV=py27-django111
12-
13-
- python: 3.4
14-
env: TOX_ENV=py34-django18
15-
- python: 3.4
16-
env: TOX_ENV=py34-django19
17-
- python: 3.4
18-
env: TOX_ENV=py34-django110
19-
- python: 3.4
20-
env: TOX_ENV=py34-django111
2+
dist: bionic
3+
sudo: true
4+
services:
5+
- postgresql
6+
python:
7+
- 2.7
8+
- 3.5
9+
- 3.6
10+
- 3.7
11+
- 3.8
12+
install:
13+
- pip install tox
14+
- pip install -q tox-travis
15+
script:
16+
- tox
2117

22-
- python: 3.5
23-
env: TOX_ENV=py35-django18
24-
- python: 3.5
25-
env: TOX_ENV=py35-django19
26-
- python: 3.5
27-
env: TOX_ENV=py35-django110
28-
- python: 3.5
29-
env: TOX_ENV=py35-django111
18+
stages:
19+
- lint
20+
- test
3021

31-
- python: 2.7
32-
env: TOX_ENV=flake8
33-
script:
34-
- tox -e $TOX_ENV
35-
install:
36-
pip install tox
22+
jobs:
23+
include:
24+
- { stage: lint, env: TOXENV=flake8, python: 3.8 }

CHANGELOG

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Changelog
22
=========
33

4+
- Add support for Django 2.2 & 3.0
5+
- Drop support for Django 1.8, 1.9 & 1.10
46

57
1.9 (2018-19-01)
68
----------------

demo/demoproject/compat.py

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
try:
2+
from django.urls import reverse # noqa
3+
except ImportError:
4+
from django.core.urlresolvers import reverse # noqa

demo/demoproject/filter/tests.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.test import TestCase
2-
from django.core.urlresolvers import reverse
2+
3+
from demoproject.compat import reverse
34

45

56
class FilteredListView(TestCase):

demo/demoproject/settings.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Django settings for django-generic-filters demo project."""
2+
23
from os import environ
34
from os.path import abspath, dirname, join
45

@@ -75,7 +76,7 @@
7576

7677

7778
# Default middlewares. You may alter the list later.
78-
MIDDLEWARE_CLASSES = [
79+
MIDDLEWARE = [
7980
'django.middleware.common.CommonMiddleware',
8081
'django.contrib.sessions.middleware.SessionMiddleware',
8182
'django.middleware.csrf.CsrfViewMiddleware',

demo/demoproject/tests.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# coding=utf8
22
"""Test suite for django-generic-filters."""
3-
from django.core.urlresolvers import reverse
43
from django.test import TestCase
54

5+
from demoproject.compat import reverse
6+
67

78
class HomeViewTestCase(TestCase):
89
"""Test homepage."""

django_genericfilters/tests/test_templatetags.py

+21-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
import unittest
22

3-
from django.template.base import TOKEN_TEXT
4-
from django.template.base import Parser
5-
from django.template.base import Token
6-
from django.template.base import Variable
3+
from django import forms
4+
from django.template.base import TOKEN_TEXT, Parser, Token, Variable
75

86
import mock
97

10-
from django_genericfilters.templatetags.updateurl import token_kwargs
11-
from django_genericfilters.templatetags.updateurl import token_value
12-
from django_genericfilters.templatetags.updateurl import \
13-
tag_update_query_string
14-
from django_genericfilters.templatetags.updateurl import update_query_string
8+
from django_genericfilters.templatetags.updateurl import (
9+
token_kwargs, token_value, tag_update_query_string, update_query_string
10+
)
11+
from django_genericfilters.templatetags.utils import is_checkbox
1512

1613

1714
class TemplateTagTestCase(unittest.TestCase):
@@ -56,3 +53,18 @@ def test_tag_update_query_string(self):
5653
self.assertEqual(
5754
node.render({'request': request, 'page': 'page', 'num_page': 2}),
5855
u'/fake?page=2')
56+
57+
def test_is_checkbox(self):
58+
class MockForm(forms.Form):
59+
a = forms.CharField()
60+
b = forms.BooleanField()
61+
62+
form = MockForm()
63+
64+
boundfield_a, boundfield_b = form.visible_fields()
65+
66+
self.assertEqual("a", boundfield_a.name)
67+
self.assertFalse(is_checkbox(boundfield_a))
68+
69+
self.assertEqual("b", boundfield_b.name)
70+
self.assertTrue(is_checkbox(boundfield_b))

django_genericfilters/tests/test_views.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,13 @@ class QueryModel(models.Model):
5555
"""
5656
Define a dummy model for this test case
5757
"""
58-
people = models.ForeignKey(ParentModel)
58+
people = models.ForeignKey(ParentModel, on_delete=models.CASCADE)
5959
city = models.CharField(max_length=250)
6060
country = models.CharField(max_length=250)
6161
organization = models.CharField(max_length=250)
62-
status = models.ForeignKey(StatusModel, null=True)
62+
status = models.ForeignKey(
63+
StatusModel, null=True, on_delete=models.CASCADE
64+
)
6365

6466
class Form(FilteredForm):
6567

setup.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def read_relative_file(filename):
1515
VERSION = read_relative_file('VERSION')
1616
PACKAGES = ['django_genericfilters']
1717
REQUIRES = [
18-
'Django>=1.8,<1.12',
18+
'Django>=1.11,<3.1',
1919
'bunch',
2020
]
2121

@@ -29,6 +29,8 @@ def read_relative_file(filename):
2929
'License :: OSI Approved :: BSD License',
3030
'Programming Language :: Python :: 2',
3131
'Programming Language :: Python :: 2.7',
32+
'Programming Language :: Python :: 3',
33+
'Programming Language :: Python :: 3.6',
3234
'Framework :: Django',
3335
],
3436
keywords='class-based view, generic view, filters',

tox.ini

+13-8
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,36 @@
55

66
[tox]
77
envlist =
8-
py{27,34,35}-django{18,19,110,111},
8+
py{27,34,35,36}-django111,
9+
py{36,37,38}-django{20,21,22,30},
910
flake8
1011

1112
[testenv]
1213
basepython =
1314
py27: python2.7
1415
py34: python3.4
1516
py35: python3.5
17+
py36: python3.6
18+
py37: python3.7
19+
py38: python3.8
1620
deps =
17-
django{18,19,110,111}: psycopg2>=2.5.4
18-
django18: Django>=1.8,<1.9
19-
django19: Django>=1.9,<1.10
20-
django110: Django>=1.10,<1.11
21-
django111: Django>=1.11,<1.12
21+
coverage
22+
psycopg2>=2.5.4
23+
django111: Django>=1.11,<2.0
24+
django22: Django>=2.2,<3.0
25+
django30: Django>=3.0,<3.1
2226
commands =
2327
pip install -e ./
2428
pip install -e demo
25-
demo test -v2 demo django_genericfilters
29+
python -Wd {envbindir}/coverage run --branch --source=django_genericfilters {envbindir}/demo test {posargs:demoproject django_genericfilters}
30+
coverage report -m
2631
passenv =
2732
PYTHONPATH
2833
DJANGO_DB_USER
2934
DJANGO_DB_PASSWORD
3035

3136
[testenv:flake8]
32-
basepython = python2.7
37+
basepython = python3.8
3338
commands =
3439
flake8 demo
3540
flake8 django_genericfilters

0 commit comments

Comments
 (0)