Import API in synchronous mode now returns the new project serialized

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-01-21 11:39:21 +01:00
parent 073ec13373
commit 395c35628e
2 changed files with 13 additions and 8 deletions

View File

@ -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'])

View File

@ -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