Skip to content

Commit

Permalink
Add tests update invalid milestone in bulk
Browse files Browse the repository at this point in the history
  • Loading branch information
alexhermida committed Nov 27, 2018
1 parent ad757f2 commit 305b8f0
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 2 deletions.
2 changes: 1 addition & 1 deletion taiga/projects/issues/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ def bulk_update_milestone(self, request, **kwargs):

self.check_permissions(request, "bulk_update_milestone", project)

ret = services.update_tasks_milestone_in_bulk(data["bulk_issues"], milestone)
ret = services.update_issues_milestone_in_bulk(data["bulk_issues"], milestone)

return response.Ok(ret)

Expand Down
3 changes: 2 additions & 1 deletion taiga/projects/issues/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def snapshot_issues_in_bulk(bulk_data, user):
pass


def update_tasks_milestone_in_bulk(bulk_data: list, milestone: object):
def update_issues_milestone_in_bulk(bulk_data: list, milestone: object):
"""
Update the milestone some issues adding
`bulk_data` should be a list of dicts with the following format:
Expand All @@ -106,6 +106,7 @@ def update_tasks_milestone_in_bulk(bulk_data: list, milestone: object):
# CSV
#####################################################


def issues_to_csv(project, queryset):
csv_data = io.StringIO()
fieldnames = ["id", "ref", "subject", "description", "sprint_id", "sprint",
Expand Down
1 change: 1 addition & 0 deletions taiga/projects/issues/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
from django.utils.translation import ugettext as _

from taiga.base.api import serializers
from taiga.base.api import validators
Expand Down
1 change: 1 addition & 0 deletions taiga/projects/tasks/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ def update_tasks_milestone_in_bulk(bulk_data: list, milestone: object):

return task_milestones


#####################################################
# CSV
#####################################################
Expand Down
29 changes: 29 additions & 0 deletions tests/integration/test_issues.py
Original file line number Diff line number Diff line change
Expand Up @@ -792,6 +792,35 @@ def test_api_update_milestone_in_bulk(client):
assert response.data[i3.id] == milestone2.id


def test_api_update_milestone_in_bulk_invalid_milestone(client):
project = f.create_project()
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)

milestone1 = f.MilestoneFactory(project=project)
milestone2 = f.MilestoneFactory()

i1 = f.create_issue(project=project, milestone=milestone1)
i2 = f.create_issue(project=project, milestone=milestone1)
i3 = f.create_issue(project=project, milestone=milestone1)

url = reverse("issues-bulk-update-milestone")
data = {
"project_id": project.id,
"milestone_id": milestone2.id,
"bulk_issues": [
{"issue_id": i1.id},
{"issue_id": i2.id},
{"issue_id": i3.id}
]
}

client.login(project.owner)
response = client.json.post(url, json.dumps(data))

assert response.status_code == 400
assert "milestone_id" in response.data


def test_get_issues(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user)
Expand Down
29 changes: 29 additions & 0 deletions tests/integration/test_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,35 @@ def test_api_update_milestone_in_bulk(client):
assert response.data[task3.id] == milestone2.id


def test_api_update_milestone_in_bulk_invalid_milestone(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user, default_task_status=None)
f.MembershipFactory.create(project=project, user=user, is_admin=True)

milestone1 = f.MilestoneFactory(project=project)
milestone2 = f.MilestoneFactory()
task1 = f.create_task(project=project, milestone=milestone1)
task2 = f.create_task(project=project, milestone=milestone1)
task3 = f.create_task(project=project, milestone=milestone1)

url = reverse("tasks-bulk-update-milestone")

data = {
"project_id": project.id,
"milestone_id": milestone2.id,
"bulk_tasks": [{"task_id": task1.id, "order": 1},
{"task_id": task2.id, "order": 2},
{"task_id": task3.id, "order": 3}]
}

client.login(project.owner)

response = client.json.post(url, json.dumps(data))

assert response.status_code == 400
assert "milestone_id" in response.data


def test_get_invalid_csv(client):
url = reverse("tasks-csv")

Expand Down

0 comments on commit 305b8f0

Please sign in to comment.