From 8d2a4afe2a57780af17e0d81d3a6a3ad46be8cf1 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 9 Feb 2016 12:41:29 +0100 Subject: [PATCH] [Backport] Importing valid project without slug --- taiga/export_import/api.py | 3 ++- tests/integration/test_importer_api.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/taiga/export_import/api.py b/taiga/export_import/api.py index cdfc36f0..19ccd373 100644 --- a/taiga/export_import/api.py +++ b/taiga/export_import/api.py @@ -205,7 +205,8 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi except Exception: raise exc.WrongArguments(_("Invalid dump format")) - if Project.objects.filter(slug=dump['slug']).exists(): + slug = dump.get('slug', None) + if slug is not None and Project.objects.filter(slug=slug).exists(): del dump['slug'] if settings.CELERY_ENABLED: diff --git a/tests/integration/test_importer_api.py b/tests/integration/test_importer_api.py index 360550fb..c8573055 100644 --- a/tests/integration/test_importer_api.py +++ b/tests/integration/test_importer_api.py @@ -1059,3 +1059,21 @@ def test_dump_import_throttling(client, settings): assert response.status_code == 201 response = client.post(url, {'dump': data}) assert response.status_code == 429 + + +def test_valid_dump_import_without_slug(client): + project = f.ProjectFactory.create(slug="existing-slug") + user = f.UserFactory.create() + client.login(user) + + url = reverse("importer-load-dump") + + data = ContentFile(bytes(json.dumps({ + "name": "Project name", + "description": "Valid project desc", + "is_private": True + }), "utf-8")) + data.name = "test" + + response = client.post(url, {'dump': data}) + assert response.status_code == 201