diff --git a/taiga/export_import/api.py b/taiga/export_import/api.py index 3e1cfbae..d198de7d 100644 --- a/taiga/export_import/api.py +++ b/taiga/export_import/api.py @@ -36,6 +36,7 @@ from taiga.base.decorators import detail_route, list_route from taiga.base import exceptions as exc from taiga.projects.models import Project, Membership from taiga.projects.issues.models import Issue +from taiga.projects.serializers import ProjectSerializer from . import mixins from . import serializers @@ -181,8 +182,9 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi task = tasks.load_project_dump.delay(request.user, dump) return Response({"import-id": task.id}, status=status.HTTP_202_ACCEPTED) - dump_service.dict_to_project(dump, request.user.email) - return Response(None, status=status.HTTP_204_NO_CONTENT) + project = dump_service.dict_to_project(dump, request.user.email) + response_data = ProjectSerializer(project).data + return Response(response_data, status=status.HTTP_201_CREATED) @detail_route(methods=['post']) diff --git a/tests/integration/test_importer_api.py b/tests/integration/test_importer_api.py index 2b2ad9fa..29b552c0 100644 --- a/tests/integration/test_importer_api.py +++ b/tests/integration/test_importer_api.py @@ -735,7 +735,10 @@ def test_valid_dump_import_with_celery_disabled(client, settings): data.name = "test" response = client.post(url, {'dump': data}) - assert response.status_code == 204 + assert response.status_code == 201 + response_data = json.loads(response.content.decode("utf-8")) + assert "id" in response_data + assert response_data["name"] == "Valid project" def test_valid_dump_import_with_celery_enabled(client, settings): settings.CELERY_ENABLED = True @@ -772,10 +775,10 @@ def test_dump_import_duplicated_project(client): data.name = "test" response = client.post(url, {'dump': data}) - assert response.status_code == 204 - new_project = Project.objects.all().order_by("-id").first() - assert new_project.name == "Test import" - assert new_project.slug == "{}-test-import".format(user.username) + assert response.status_code == 201 + response_data = json.loads(response.content.decode("utf-8")) + assert response_data["name"] == "Test import" + assert response_data["slug"] == "{}-test-import".format(user.username) def test_dump_import_throttling(client, settings): settings.REST_FRAMEWORK["DEFAULT_THROTTLE_RATES"]["import-dump-mode"] = "1/minute" @@ -794,6 +797,6 @@ def test_dump_import_throttling(client, settings): data.name = "test" response = client.post(url, {'dump': data}) - assert response.status_code == 204 + assert response.status_code == 201 response = client.post(url, {'dump': data}) assert response.status_code == 429