Skip to content

Commit 470015b

Browse files
authored
Merge pull request #83 from ehaivala/django_2_support
Django 2.0 support
2 parents 0e9371f + 39b351d commit 470015b

File tree

6 files changed

+59
-18
lines changed

6 files changed

+59
-18
lines changed

.travis.yml

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,38 @@
11
sudo: false
22
language: python
3-
python:
4-
- '2.7'
5-
- '3.4'
6-
- '3.5'
7-
- '3.6'
3+
matrix:
4+
include:
5+
- python: '2.7'
6+
env: TOXENV=py27-django18
7+
- python: '3.4'
8+
env: TOXENV=py34-django18
9+
- python: '3.5'
10+
env: TOXENV=py35-django18
11+
12+
- python: '2.7'
13+
env: TOXENV=py27-django110
14+
- python: '3.4'
15+
env: TOXENV=py34-django110
16+
- python: '3.5'
17+
env: TOXENV=py35-django110
18+
19+
- python: '2.7'
20+
env: TOXENV=py27-django111
21+
- python: '3.4'
22+
env: TOXENV=py34-django111
23+
- python: '3.5'
24+
env: TOXENV=py35-django111
25+
- python: '3.6'
26+
env: TOXENV=py36-django111
27+
28+
- python: '3.4'
29+
env: TOXENV=py34-django20
30+
- python: '3.5'
31+
env: TOXENV=py35-django20
32+
- python: '3.6'
33+
env: TOXENV=py36-django20
34+
835
install:
936
- pip install -U pip wheel setuptools
10-
- pip install tox tox-travis
37+
- pip install tox
1138
script: tox

enumfields/fields.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from enum import Enum
22

3+
import django
34
from django.utils import six
45
from django.core.exceptions import ValidationError
56
from django.db import models
@@ -78,7 +79,10 @@ def value_to_string(self, obj):
7879
Since most of the enum values are strings or integers we WILL NOT convert it to string
7980
to enable integers to be serialized natively.
8081
"""
81-
value = self._get_val_from_obj(obj)
82+
if django.VERSION >= (2, 0):
83+
value = self.value_from_object(obj)
84+
else:
85+
value = self._get_val_from_obj(obj)
8286
return value.value if value else None
8387

8488
def get_default(self):

setup.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ def run_tests(self):
4141
classifiers=[
4242
'Environment :: Web Environment',
4343
'Framework :: Django',
44+
'Framework :: Django :: 1.8',
45+
'Framework :: Django :: 1.10',
46+
'Framework :: Django :: 1.11',
47+
'Framework :: Django :: 2.0',
4448
'Intended Audience :: Developers',
4549
'Operating System :: OS Independent',
4650
'Programming Language :: Python',

tests/test_django_admin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import uuid
44

55
import pytest
6-
from django.core.urlresolvers import reverse
6+
try:
7+
from django.core.urlresolvers import reverse # Django 1.x
8+
except ImportError:
9+
from django.urls import reverse # Django 2.x
710

811
from enumfields import EnumIntegerField
912

tests/test_form_fields.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# -- encoding: UTF-8 --
2+
import django
23
import pytest
34
from django.utils import six
45
from django.db.models import BLANK_CHOICE_DASH
@@ -17,13 +18,19 @@ def get_form(**kwargs):
1718
@pytest.mark.django_db
1819
def test_unbound_form_with_instance():
1920
form = get_form()
20-
assert 'value="r" selected="selected"' in six.text_type(form["color"])
21+
if django.VERSION >= (1, 11):
22+
assert 'value="r" selected' in six.text_type(form["color"])
23+
else:
24+
assert 'value="r" selected="selected"' in six.text_type(form["color"])
2125

2226

2327
@pytest.mark.django_db
2428
def test_bound_form_with_instance():
2529
form = get_form(data={"color": "g"})
26-
assert 'value="g" selected="selected"' in six.text_type(form["color"])
30+
if django.VERSION >= (1, 11):
31+
assert 'value="g" selected' in six.text_type(form["color"])
32+
else:
33+
assert 'value="g" selected="selected"' in six.text_type(form["color"])
2734

2835

2936
def test_choices():

tox.ini

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
[tox]
22
envlist =
3-
{py27,py34,py35,py36}-{django18,django19,django110}
4-
5-
[tox:travis]
6-
2.7 = py27
7-
3.4 = py34
8-
3.5 = py35
9-
3.6 = py36
3+
py{27,34,35,36}-django{18,110,111}, py{34,35,36}-django{20}
104

115
[testenv]
126
setenv = PYTHONPATH = {toxinidir}
137
commands = python setup.py test
148
deps =
159
django18: Django>=1.8,<1.9
16-
django19: Django>=1.9,<1.10
10+
django18: djangorestframework<3.7
1711
django110: Django>=1.10,<1.11
12+
django111: Django>=1.11,<2
13+
django20: Django>=2.0,<2.1

0 commit comments

Comments
 (0)