From 275ce381f975869846214252da70d0d24b21f87c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Wed, 17 Aug 2016 17:01:02 +0200 Subject: [PATCH] Fix tasks creation in bulk test --- taiga/projects/tasks/api.py | 29 ++++++++++--------- .../test_tasks_resources.py | 8 ++--- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/taiga/projects/tasks/api.py b/taiga/projects/tasks/api.py index 9584a17b..e722f935 100644 --- a/taiga/projects/tasks/api.py +++ b/taiga/projects/tasks/api.py @@ -251,24 +251,25 @@ class TaskViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin, @list_route(methods=["POST"]) def bulk_create(self, request, **kwargs): validator = validators.TasksBulkValidator(data=request.DATA) - if validator.is_valid(): - data = validator.data - project = Project.objects.get(id=data["project_id"]) - self.check_permissions(request, 'bulk_create', project) - if project.blocked_code is not None: - raise exc.Blocked(_("Blocked element")) + if not validator.is_valid(): + return response.BadRequest(validator.errors) - tasks = services.create_tasks_in_bulk( - data["bulk_tasks"], milestone_id=data["milestone_id"], user_story_id=data["us_id"], - status_id=data.get("status_id") or project.default_task_status_id, - project=project, owner=request.user, callback=self.post_save, precall=self.pre_save) + data = validator.data + project = Project.objects.get(id=data["project_id"]) + self.check_permissions(request, 'bulk_create', project) + if project.blocked_code is not None: + raise exc.Blocked(_("Blocked element")) - tasks = self.get_queryset().filter(id__in=[i.id for i in tasks]) - tasks_serialized = self.get_serializer_class()(tasks, many=True) + tasks = services.create_tasks_in_bulk( + data["bulk_tasks"], milestone_id=data["milestone_id"], user_story_id=data["us_id"], + status_id=data.get("status_id") or project.default_task_status_id, + project=project, owner=request.user, callback=self.post_save, precall=self.pre_save) - return response.Ok(tasks_serialized.data) + tasks = self.get_queryset().filter(id__in=[i.id for i in tasks]) + tasks_serialized = self.get_serializer_class()(tasks, many=True) + + return response.Ok(tasks_serialized.data) - return response.BadRequest(validator.errors) def _bulk_update_order(self, order_field, request, **kwargs): validator = validators.UpdateTasksOrderBulkValidator(data=request.DATA) diff --git a/tests/integration/resources_permissions/test_tasks_resources.py b/tests/integration/resources_permissions/test_tasks_resources.py index 4d6427dd..d2fcc2e3 100644 --- a/tests/integration/resources_permissions/test_tasks_resources.py +++ b/tests/integration/resources_permissions/test_tasks_resources.py @@ -656,7 +656,7 @@ def test_task_action_bulk_create(client, data): "bulk_tasks": "test1\ntest2", "us_id": data.public_task.user_story.pk, "project_id": data.public_task.project.pk, - "sprint_id": data.public_task.milestone.pk, + "milestone_id": data.public_task.milestone.pk, }) results = helper_test_http_method(client, 'post', url, bulk_data, users) assert results == [401, 403, 403, 200, 200] @@ -665,7 +665,7 @@ def test_task_action_bulk_create(client, data): "bulk_tasks": "test1\ntest2", "us_id": data.private_task1.user_story.pk, "project_id": data.private_task1.project.pk, - "sprint_id": data.private_task1.milestone.pk, + "milestone_id": data.private_task1.milestone.pk, }) results = helper_test_http_method(client, 'post', url, bulk_data, users) assert results == [401, 403, 403, 200, 200] @@ -674,7 +674,7 @@ def test_task_action_bulk_create(client, data): "bulk_tasks": "test1\ntest2", "us_id": data.private_task2.user_story.pk, "project_id": data.private_task2.project.pk, - "sprint_id": data.private_task2.milestone.pk, + "milestone_id": data.private_task2.milestone.pk, }) results = helper_test_http_method(client, 'post', url, bulk_data, users) assert results == [401, 403, 403, 200, 200] @@ -683,7 +683,7 @@ def test_task_action_bulk_create(client, data): "bulk_tasks": "test1\ntest2", "us_id": data.blocked_task.user_story.pk, "project_id": data.blocked_task.project.pk, - "sprint_id": data.blocked_task.milestone.pk, + "milestone_id": data.blocked_task.milestone.pk, }) results = helper_test_http_method(client, 'post', url, bulk_data, users) assert results == [401, 403, 403, 451, 451]