Hello community,
here is the log from the commit of package python-django-picklefield for
openSUSE:Factory checked in at 2020-02-20 14:59:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-picklefield (Old)
and /work/SRC/openSUSE:Factory/.python-django-picklefield.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-picklefield"
Thu Feb 20 14:59:17 2020 rev:14 rq:777595 version:2.1.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-picklefield/python-django-picklefield.changes
2018-12-11 15:49:51.754071984 +0100
+++
/work/SRC/openSUSE:Factory/.python-django-picklefield.new.26092/python-django-picklefield.changes
2020-02-20 14:59:26.266765740 +0100
@@ -1,0 +2,6 @@
+Thu Feb 20 08:36:53 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Update to 2.1.1:
+ * no changelog
+
+-------------------------------------------------------------------
Old:
----
v2.0.0.tar.gz
New:
----
v2.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-picklefield.spec ++++++
--- /var/tmp/diff_new_pack.GH5lhj/_old 2020-02-20 14:59:27.142767459 +0100
+++ /var/tmp/diff_new_pack.GH5lhj/_new 2020-02-20 14:59:27.142767459 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-django-picklefield
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,14 +18,14 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-django-picklefield
-Version: 2.0.0
+Version: 2.1.1
Release: 0
Summary: Pickled object field for Django
License: MIT
-Group: Development/Languages/Python
-URL: http://github.com/gintas/django-picklefield
+URL: https://github.com/gintas/django-picklefield
Source:
https://github.com/gintas/django-picklefield/archive/v%{version}.tar.gz
BuildRequires: %{python_module Django >= 1.11}
+BuildRequires: %{python_module mock}
BuildRequires: %{python_module setuptools}
BuildRequires: python-rpm-macros
Requires: python-Django >= 1.11
++++++ v2.0.0.tar.gz -> v2.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/.coveragerc
new/django-picklefield-2.1.1/.coveragerc
--- old/django-picklefield-2.0.0/.coveragerc 2018-11-25 15:45:39.000000000
+0100
+++ new/django-picklefield-2.1.1/.coveragerc 2020-01-28 16:01:12.000000000
+0100
@@ -1,3 +1,8 @@
[run]
source = picklefield
branch = True
+
+[report]
+exclude_lines =
+ pragma: no cover
+ except ImportError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/.travis.yml
new/django-picklefield-2.1.1/.travis.yml
--- old/django-picklefield-2.0.0/.travis.yml 2018-11-25 15:45:39.000000000
+0100
+++ new/django-picklefield-2.1.1/.travis.yml 2020-01-28 16:01:12.000000000
+0100
@@ -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:
@@ -62,4 +32,4 @@
distributions: sdist bdist_wheel
on:
tags: true
- condition: "$TOXENV = py27-1.11"
+ condition: "$TRAVIS_PYTHON_VERSION = 2.7"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/README.rst
new/django-picklefield-2.1.1/README.rst
--- old/django-picklefield-2.0.0/README.rst 2018-11-25 15:45:39.000000000
+0100
+++ new/django-picklefield-2.1.1/README.rst 2020-01-28 16:01:12.000000000
+0100
@@ -162,6 +162,13 @@
Changes
-------
+Changes in version 2.1.0
+========================
+
+* Added official support for Django 2.2 (thanks to joehybird).
+* Dropped support for Django 2.0 and 2.1 (thanks to joehybird).
+* Dropped support for Python 3.4 (thanks to joehybidd).
+
Changes in version 2.0.0
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/picklefield/__init__.py
new/django-picklefield-2.1.1/picklefield/__init__.py
--- old/django-picklefield-2.0.0/picklefield/__init__.py 2018-11-25
15:45:39.000000000 +0100
+++ new/django-picklefield-2.1.1/picklefield/__init__.py 2020-01-28
16:01:12.000000000 +0100
@@ -7,6 +7,6 @@
__all__ = 'VERSION', '__version__', 'DEFAULT_PROTOCOL', 'PickledObjectField'
-VERSION = (2, 0, 0, 'alpha', 0)
+VERSION = (2, 1, 1, 'final', 0)
__version__ = django.utils.version.get_version(VERSION)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/picklefield/fields.py
new/django-picklefield-2.1.1/picklefield/fields.py
--- old/django-picklefield-2.0.0/picklefield/fields.py 2018-11-25
15:45:39.000000000 +0100
+++ new/django-picklefield-2.1.1/picklefield/fields.py 2020-01-28
16:01:12.000000000 +0100
@@ -4,7 +4,7 @@
from copy import deepcopy
from zlib import compress, decompress
-import django
+from django import VERSION as DJANGO_VERSION
from django.core import checks
from django.db import models
from django.utils.encoding import force_text
@@ -12,9 +12,9 @@
from .constants import DEFAULT_PROTOCOL
try:
- from cPickle import loads, dumps
+ from cPickle import loads, dumps # pragma: no cover
except ImportError:
- from pickle import loads, dumps
+ from pickle import loads, dumps # pragma: no cover
class PickledObject(str):
@@ -158,7 +158,7 @@
value = dbsafe_decode(value, self.compress)
except Exception:
# If the value is a definite pickle; and an error is raised in
- # de-pickling it should be allowed to propogate.
+ # de-pickling it should be allowed to propagate.
if isinstance(value, PickledObject):
raise
else:
@@ -170,12 +170,12 @@
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)
+ if DJANGO_VERSION < (2, 0):
+ def from_db_value(self, value, expression, connection, context): #
pragma: no cover
+ return self.to_python(value) # pragma: no cover
else:
- def from_db_value(self, value, expression, connection):
- return self.to_python(value)
+ def from_db_value(self, value, expression, connection): # pragma: no
cover
+ return self.to_python(value) # pragma: no cover
def get_db_prep_value(self, value, connection=None, prepared=False):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/setup.py
new/django-picklefield-2.1.1/setup.py
--- old/django-picklefield-2.0.0/setup.py 2018-11-25 15:45:39.000000000
+0100
+++ new/django-picklefield-2.1.1/setup.py 2020-01-28 16:01:12.000000000
+0100
@@ -21,8 +21,7 @@
'Environment :: Web Environment',
'Framework :: Django',
'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',
@@ -30,10 +29,10 @@
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
'Topic :: Software Development :: Libraries :: Application Frameworks',
'Topic :: Software Development :: Libraries :: Python Modules',
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/tests/models.py
new/django-picklefield-2.1.1/tests/models.py
--- old/django-picklefield-2.0.0/tests/models.py 2018-11-25
15:45:39.000000000 +0100
+++ new/django-picklefield-2.1.1/tests/models.py 2020-01-28
16:01:12.000000000 +0100
@@ -27,6 +27,7 @@
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):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/tests/tests.py
new/django-picklefield-2.1.1/tests/tests.py
--- old/django-picklefield-2.0.0/tests/tests.py 2018-11-25 15:45:39.000000000
+0100
+++ new/django-picklefield-2.1.1/tests/tests.py 2020-01-28 16:01:12.000000000
+0100
@@ -14,6 +14,11 @@
TestCustomDataType, TestingModel,
)
+try:
+ from unittest.mock import patch # pragma: no cover
+except ImportError:
+ from mock import patch # pragma: no cover
+
class PickledObjectFieldTests(TestCase):
def setUp(self):
@@ -35,6 +40,7 @@
# 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.assertIsNone(model_test.nullable_pickle_field)
# Make sure we can also retrieve the model
model_test.save()
model_test.delete()
@@ -181,6 +187,21 @@
with self.assertRaises(IntegrityError):
MinimalTestingModel.objects.create()
+ def test_decode_error(self):
+ def mock_decode_error(*args, **kwargs):
+ raise Exception()
+
+ model = MinimalTestingModel.objects.create(pickle_field={'foo': 'bar'})
+ model.save()
+
+ self.assertEqual(
+ {'foo': 'bar'},
MinimalTestingModel.objects.get(pk=model.pk).pickle_field
+ )
+
+ with patch('picklefield.fields.dbsafe_decode', mock_decode_error):
+ encoded_value = dbsafe_encode({'foo': 'bar'})
+ self.assertEqual(encoded_value,
MinimalTestingModel.objects.get(pk=model.pk).pickle_field)
+
@isolate_apps('tests')
class PickledObjectFieldCheckTests(SimpleTestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-picklefield-2.0.0/tox.ini
new/django-picklefield-2.1.1/tox.ini
--- old/django-picklefield-2.0.0/tox.ini 2018-11-25 15:45:39.000000000
+0100
+++ new/django-picklefield-2.1.1/tox.ini 2020-01-28 16:01:12.000000000
+0100
@@ -5,27 +5,36 @@
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}
+ py35-{1.11,2.2},
+ py36-{1.11,2.2,master},
+ py37-{1.11,2.2,master},
+ py38-{2.2,master},
+
+[tox:travis]
+2.7 = py27
+3.5 = py35
+3.6 = py36
+3.7 = py37
+3.8 = py38
[testenv]
basepython =
py27: python2.7
- py34: python3.4
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 =
+ py27: mock
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]