From 1789aa6f06b13b4ae4d8c9c8c772acb5d08c62cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Thu, 31 Jul 2014 10:08:23 +0200 Subject: [PATCH] Adding tests for bulk_create issues --- taiga/projects/issues/permissions.py | 2 +- .../test_issues_resources.py | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/taiga/projects/issues/permissions.py b/taiga/projects/issues/permissions.py index 89582ee7..7fffb9f5 100644 --- a/taiga/projects/issues/permissions.py +++ b/taiga/projects/issues/permissions.py @@ -30,7 +30,7 @@ class IssuePermission(ResourcePermission): list_perms = AllowAny() upvote_perms = IsAuthenticated() & HasProjectPerm('vote_issues') downvote_perms = IsAuthenticated() & HasProjectPerm('vote_issues') - bulk_create_perms = IsAuthenticated() & (HasProjectPerm('add_issue_to_project') | HasProjectPerm('add_issue')) + bulk_create_perms = HasProjectPerm('add_issue') class HasIssueIdUrlParam(PermissionComponent): diff --git a/tests/integration/resources_permissions/test_issues_resources.py b/tests/integration/resources_permissions/test_issues_resources.py index 48106047..4395766b 100644 --- a/tests/integration/resources_permissions/test_issues_resources.py +++ b/tests/integration/resources_permissions/test_issues_resources.py @@ -265,6 +265,49 @@ def test_issue_patch(client, data): assert results == [401, 403, 403, 200, 200] +def test_issue_bulk_create(client, data): + data.public_issue.project.default_issue_status = f.IssueStatusFactory() + data.public_issue.project.default_issue_type = f.IssueTypeFactory() + data.public_issue.project.default_priority = f.PriorityFactory() + data.public_issue.project.default_severity = f.SeverityFactory() + data.public_issue.project.save() + + data.private_issue1.project.default_issue_status = f.IssueStatusFactory() + data.private_issue1.project.default_issue_type = f.IssueTypeFactory() + data.private_issue1.project.default_priority = f.PriorityFactory() + data.private_issue1.project.default_severity = f.SeverityFactory() + data.private_issue1.project.save() + + data.private_issue2.project.default_issue_status = f.IssueStatusFactory() + data.private_issue2.project.default_issue_type = f.IssueTypeFactory() + data.private_issue2.project.default_priority = f.PriorityFactory() + data.private_issue2.project.default_severity = f.SeverityFactory() + data.private_issue2.project.save() + + url = reverse('issues-bulk-create') + + users = [ + None, + data.registered_user, + data.project_member_without_perms, + data.project_member_with_perms, + data.project_owner + ] + + + bulk_data = json.dumps({"bulkIssues": "test1\ntest2", "projectId": data.public_issue.project.pk}) + results = helper_test_http_method(client, 'post', url, bulk_data, users) + assert results == [401, 200, 200, 200, 200] + + bulk_data = json.dumps({"bulkIssues": "test1\ntest2", "projectId": data.private_issue1.project.pk}) + results = helper_test_http_method(client, 'post', url, bulk_data, users) + assert results == [401, 200, 200, 200, 200] + + bulk_data = json.dumps({"bulkIssues": "test1\ntest2", "projectId": data.private_issue2.project.pk}) + results = helper_test_http_method(client, 'post', url, bulk_data, users) + assert results == [401, 403, 403, 200, 200] + + def test_issue_action_upvote(client, data): public_url = reverse('issues-upvote', kwargs={"pk": data.public_issue.pk}) private_url1 = reverse('issues-upvote', kwargs={"pk": data.private_issue1.pk})