From 73912e61288be52dddd6d204a39d25204b69505c Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Mon, 21 Dec 2015 14:11:13 +0100 Subject: [PATCH] Fixing delete project dump asynch task --- taiga/export_import/api.py | 2 +- tests/integration/test_exporter_api.py | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/taiga/export_import/api.py b/taiga/export_import/api.py index fe422836..12f0470d 100644 --- a/taiga/export_import/api.py +++ b/taiga/export_import/api.py @@ -63,7 +63,7 @@ class ProjectExporterViewSet(mixins.ImportThrottlingPolicyMixin, GenericViewSet) if settings.CELERY_ENABLED: task = tasks.dump_project.delay(request.user, project) - tasks.delete_project_dump.apply_async((project.pk, project.slug), + tasks.delete_project_dump.apply_async((project.pk, project.slug, task.id), countdown=settings.EXPORTS_TTL) return response.Accepted({"export_id": task.id}) diff --git a/tests/integration/test_exporter_api.py b/tests/integration/test_exporter_api.py index 69f58c32..d84f29a1 100644 --- a/tests/integration/test_exporter_api.py +++ b/tests/integration/test_exporter_api.py @@ -16,6 +16,8 @@ import pytest +from unittest import mock + from django.core.urlresolvers import reverse from .. import factories as f @@ -61,10 +63,16 @@ def test_valid_project_export_with_celery_enabled(client, settings): url = reverse("exporter-detail", args=[project.pk]) - response = client.get(url, content_type="application/json") - assert response.status_code == 202 - response_data = response.data - assert "export_id" in response_data + #delete_project_dump task should have been launched + with mock.patch('taiga.export_import.tasks.delete_project_dump') as delete_project_dump_mock: + response = client.get(url, content_type="application/json") + assert response.status_code == 202 + response_data = response.data + assert "export_id" in response_data + + args = (project.id, project.slug, response_data["export_id"],) + kwargs = {"countdown": settings.EXPORTS_TTL} + delete_project_dump_mock.apply_async.assert_called_once_with(args, **kwargs) def test_valid_project_with_throttling(client, settings):