Import API in synchronous mode now returns the new project serialized
parent
073ec13373
commit
395c35628e
|
@ -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'])
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue