diff --git a/django_celery_results/managers.py b/django_celery_results/managers.py index 8cb15068..844e42ce 100644 --- a/django_celery_results/managers.py +++ b/django_celery_results/managers.py @@ -8,7 +8,7 @@ from django.conf import settings from django.db import connections, models, router, transaction -from .utils import now, raw_delete +from .utils import now W_ISOLATION_REP = """ Polling results with transaction isolation level 'repeatable-read' @@ -87,7 +87,7 @@ def get_all_expired(self, expires): def delete_expired(self, expires): """Delete all expired results.""" with transaction.atomic(using=self.db): - raw_delete(queryset=self.get_all_expired(expires)) + self.get_all_expired(expires).delete() class TaskResultManager(ResultManager): diff --git a/django_celery_results/utils.py b/django_celery_results/utils.py index 8a4b2851..32fcaa67 100644 --- a/django_celery_results/utils.py +++ b/django_celery_results/utils.py @@ -15,8 +15,3 @@ def now(): return now_localtime(timezone.now()) else: return timezone.now() - - -def raw_delete(queryset): - """Raw delete given queryset.""" - return queryset._raw_delete(queryset.db) diff --git a/t/unit/test_utils.py b/t/unit/test_utils.py deleted file mode 100644 index 344f1449..00000000 --- a/t/unit/test_utils.py +++ /dev/null @@ -1,41 +0,0 @@ -from celery import uuid -from django.test import TransactionTestCase - -from django_celery_results.models import TaskResult -from django_celery_results.utils import raw_delete - -_TEST_RECORDS_COUNT = 100 - - -class RawDeleteTest(TransactionTestCase): - """Unit test for `utils.raw_delete` func.""" - - def setUp(self): - # setup test results to be used against raw_delete - TaskResult.objects.bulk_create( - [TaskResult(task_id=uuid()) for _ in range(_TEST_RECORDS_COUNT)] - ) - assert TaskResult.objects.count() == _TEST_RECORDS_COUNT - - def _get_sample_result_ids(self, count): - return TaskResult.objects.values_list("pk").order_by("?")[:count] - - def test_all_rows_delete(self): - raw_delete( - queryset=TaskResult.objects.all() - ) - assert TaskResult.objects.count() == 0 - - def test_correct_rows_deleted(self): - # sample random 10 rows - sample_size = 10 - sample_ids = self._get_sample_result_ids(count=sample_size) - # update task_name to "test" - TaskResult.objects.filter(pk__in=sample_ids).update(task_name="test") - # "raw delete" results with name = "test" - raw_delete( - queryset=TaskResult.objects.filter(task_name="test") - ) - assert TaskResult.objects.filter(task_name="test").count() == 0 - results_remaining = _TEST_RECORDS_COUNT - sample_size - assert TaskResult.objects.count() == results_remaining diff --git a/tox.ini b/tox.ini index ee676c0d..509f9cd1 100644 --- a/tox.ini +++ b/tox.ini @@ -29,6 +29,7 @@ deps= django41: -r{toxinidir}/requirements/test-django41.txt django40: -r{toxinidir}/requirements/test-django40.txt django32: -r{toxinidir}/requirements/test-django32.txt + django42: -r{toxinidir}/requirements/test-django42.txt cov,integration: -r{toxinidir}/requirements/test-django.txt