Fixes backward compatibility problems with django-picklefield

This commit is contained in:
Ilan Steemers
2015-09-07 20:24:21 +02:00
parent eff51cf9d1
commit f4f8af1382
6 changed files with 17 additions and 8 deletions
+1 -1
View File
@@ -9,6 +9,6 @@ from .models import Task, Schedule, Success, Failure
from .cluster import Cluster
from .status import Stat
VERSION = (0, 6, 1)
VERSION = (0, 6, 2)
default_app_config = 'django_q.apps.DjangoQConfig'
+10 -1
View File
@@ -38,7 +38,7 @@ class Task(models.Model):
values = Task.objects.filter(group=group_id).values_list('result', flat=True)
else:
values = Task.objects.filter(group=group_id).exclude(success=False).values_list('result', flat=True)
return [dbsafe_decode(t) for t in values]
return decode_results(values)
@staticmethod
def get_group_count(group_id, failures=False):
@@ -186,3 +186,12 @@ class Schedule(models.Model):
verbose_name = _('Scheduled task')
verbose_name_plural = _('Scheduled tasks')
ordering = ['next_run']
# Backwards compatibility for Django 1.7
if hasattr(PickledObjectField, 'from_db_value'):
def decode_results(values):
return values
else:
def decode_results(values):
return [dbsafe_decode(v) for v in values]
+2 -2
View File
@@ -209,8 +209,8 @@ def test_async(broker, admin_user):
assert fetch(result_j.name) == result_j
assert result(result_j.name) == result_j.result
# groups
assert result_group('test_j') == [result_j.result]
assert result_group('test_j', failures=True) == [result_j.result]
assert result_group('test_j')[0] == result_j.result
assert result_group('test_j', failures=True)[0] == result_j.result
assert fetch_group('test_j')[0].id == [result_j][0].id
assert fetch_group('test_j', failures=False)[0].id == [result_j][0].id
assert count_group('test_j') == 1