Skip to content

Commit

Permalink
Add official support for Django 2.2. Improve coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
joehybird committed Jan 23, 2020
1 parent 65afd88 commit 07c9314
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 59 deletions.
60 changes: 15 additions & 45 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,54 +1,24 @@
dist: trusty
dist: bionic
sudo: false
language: python
env:
matrix:
- TOXENV=flake8
- TOXENV=isort
cache: pip
matrix:
python:
- 2.7
- 3.5
- 3.6
- 3.7
- 3.8
stages:
- lint
- test
jobs:
fast_finish: true
include:
- python: 2.7
env: TOXENV=py27-1.11
- python: 3.4
env: TOXENV=py34-1.11
- python: 3.4
env: TOXENV=py34-2.0
- python: 3.5
env: TOXENV=py35-1.11
- python: 3.5
env: TOXENV=py35-2.0
- python: 3.5
env: TOXENV=py35-2.1
- python: 3.5
env: TOXENV=py35-master
- python: 3.6
env: TOXENV=py36-1.11
- python: 3.6
env: TOXENV=py36-2.0
- python: 3.6
env: TOXENV=py36-2.1
- python: 3.6
env: TOXENV=py36-master
- python: 3.7
env: TOXENV=py37-2.0
dist: xenial
sudo: true
- python: 3.7
env: TOXENV=py37-2.1
dist: xenial
sudo: true
- python: 3.7
env: TOXENV=py37-master
dist: xenial
sudo: true
allow_failures:
- env: TOXENV=py35-master
- env: TOXENV=py36-master
- env: TOXENV=py37-master
- { stage: lint, env: TOXENV=flake8, python: 3.6 }
- { stage: lint, env: TOXENV=isort, python: 3.6 }

install:
- pip install tox coveralls
- pip install tox coveralls tox-travis
script:
- tox
after_success:
Expand Down
9 changes: 2 additions & 7 deletions picklefield/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from copy import deepcopy
from zlib import compress, decompress

import django
from django.core import checks
from django.db import models
from django.utils.encoding import force_text
Expand Down Expand Up @@ -170,12 +169,8 @@ def pre_save(self, model_instance, add):
value = super(PickledObjectField, self).pre_save(model_instance, add)
return wrap_conflictual_object(value)

if django.VERSION < (2, 0):
def from_db_value(self, value, expression, connection, context):
return self.to_python(value)
else:
def from_db_value(self, value, expression, connection):
return self.to_python(value)
def from_db_value(self, value, expression, connection, context=None):
return self.to_python(value)

def get_db_prep_value(self, value, connection=None, prepared=False):
"""
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
'Framework :: Django :: 1.11',
'Framework :: Django :: 2.0',
'Framework :: Django :: 2.1',
'Framework :: Django :: 2.2',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
Expand Down
1 change: 1 addition & 0 deletions tests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class TestingModel(models.Model):
default_pickle_field = PickledObjectField(default=(D1, S1, T1, L1))
callable_pickle_field = PickledObjectField(default=date.today)
non_copying_field = PickledObjectField(copy=False, default=TestCopyDataType('boom!'))
nullable_pickle_field = PickledObjectField(null=True)


class MinimalTestingModel(models.Model):
Expand Down
1 change: 1 addition & 0 deletions tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ def test_data_integrity(self):
# the same data, even thought it's stored differently in the DB.
self.assertEqual(value, model_test.pickle_field)
self.assertEqual(value, model_test.compressed_pickle_field)
self.assertEqual(None, model_test.nullable_pickle_field)
# Make sure we can also retrieve the model
model_test.save()
model_test.delete()
Expand Down
20 changes: 13 additions & 7 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ args_are_paths = false
envlist =
flake8,
isort,
py27-1.11,
py34-{1.11,2.0},
py35-{1.11,2.0,2.1,master},
py36-{1.11,2.0,2.1,master},
py37-{1.11,2.0,2.1,master}
py{27,34,35,36,37,38}-1.11,
py{35,36,37,38}-{2.0,2.1,2.2,master}

[tox:travis]
3.4 = py34
3.5 = py35
3.6 = py36
3.7 = py37
3.8 = py38

[testenv]
basepython =
Expand All @@ -17,15 +21,17 @@ basepython =
py35: python3.5
py36: python3.6
py37: python3.7
py38: python3.8
usedevelop = true
commands =
{envpython} -R -Wonce {envbindir}/coverage run -m django test -v2 --settings=tests.settings {posargs}
coverage report
{envpython} -R -Wonce {envbindir}/coverage run --branch -m django test -v2 --settings=tests.settings {posargs}
coverage report -m
deps =
coverage
1.11: Django>=1.11,<2.0
2.0: Django>=2.0,<2.1
2.1: Django>=2.1,<2.2
2.2: Django>=2.2,<3.0
master: https://github.com/django/django/archive/master.tar.gz

[testenv:flake8]
Expand Down

0 comments on commit 07c9314

Please sign in to comment.