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.base import exceptions as exc
from taiga.projects.models import Project, Membership from taiga.projects.models import Project, Membership
from taiga.projects.issues.models import Issue from taiga.projects.issues.models import Issue
from taiga.projects.serializers import ProjectSerializer
from . import mixins from . import mixins
from . import serializers from . import serializers
@ -181,8 +182,9 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi
task = tasks.load_project_dump.delay(request.user, dump) task = tasks.load_project_dump.delay(request.user, dump)
return Response({"import-id": task.id}, status=status.HTTP_202_ACCEPTED) return Response({"import-id": task.id}, status=status.HTTP_202_ACCEPTED)
dump_service.dict_to_project(dump, request.user.email) project = dump_service.dict_to_project(dump, request.user.email)
return Response(None, status=status.HTTP_204_NO_CONTENT) response_data = ProjectSerializer(project).data
return Response(response_data, status=status.HTTP_201_CREATED)
@detail_route(methods=['post']) @detail_route(methods=['post'])

View File

@ -735,7 +735,10 @@ def test_valid_dump_import_with_celery_disabled(client, settings):
data.name = "test" data.name = "test"
response = client.post(url, {'dump': data}) 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): def test_valid_dump_import_with_celery_enabled(client, settings):
settings.CELERY_ENABLED = True settings.CELERY_ENABLED = True
@ -772,10 +775,10 @@ def test_dump_import_duplicated_project(client):
data.name = "test" data.name = "test"
response = client.post(url, {'dump': data}) response = client.post(url, {'dump': data})
assert response.status_code == 204 assert response.status_code == 201
new_project = Project.objects.all().order_by("-id").first() response_data = json.loads(response.content.decode("utf-8"))
assert new_project.name == "Test import" assert response_data["name"] == "Test import"
assert new_project.slug == "{}-test-import".format(user.username) assert response_data["slug"] == "{}-test-import".format(user.username)
def test_dump_import_throttling(client, settings): def test_dump_import_throttling(client, settings):
settings.REST_FRAMEWORK["DEFAULT_THROTTLE_RATES"]["import-dump-mode"] = "1/minute" 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" data.name = "test"
response = client.post(url, {'dump': data}) response = client.post(url, {'dump': data})
assert response.status_code == 204 assert response.status_code == 201
response = client.post(url, {'dump': data}) response = client.post(url, {'dump': data})
assert response.status_code == 429 assert response.status_code == 429