Upgrade calculate milestone is closed

stable
Álex Hermida 2019-01-08 16:23:20 +01:00 committed by Alex Hermida
parent 5f301450df
commit c260a4dd22
3 changed files with 133 additions and 2 deletions

View File

@ -30,11 +30,15 @@ def calculate_milestone_is_closed(milestone):
[task.status is not None and task.status.is_closed for task in [task.status is not None and task.status.is_closed for task in
milestone.tasks.all()]) and all( milestone.tasks.all()]) and all(
[user_story.is_closed for user_story in milestone.user_stories.all()]) [user_story.is_closed for user_story in milestone.user_stories.all()])
issues_check = milestone.issues.all().count() > 0 and all( issues_check = milestone.issues.all().count() > 0 and all(
[issue.is_closed for issue in milestone.issues.all()]) [issue.is_closed for issue in milestone.issues.all()]) and all(
tasks_check = milestone.tasks.all().count() > 0 and all(
[task.is_closed for task in milestone.tasks.all()]) [task.is_closed for task in milestone.tasks.all()])
tasks_check = milestone.tasks.all().count() > 0 and all(
[task.is_closed for task in milestone.tasks.all()]) and all(
[issue.is_closed for issue in milestone.issues.all()])
return uss_check or issues_check or tasks_check return uss_check or issues_check or tasks_check

View File

@ -369,6 +369,7 @@ def test_api_move_issues_to_another_sprint_close_previous(client):
status=closed_status) status=closed_status)
issue2 = f.create_issue(project=project, milestone=milestone1) issue2 = f.create_issue(project=project, milestone=milestone1)
assert project.milestones.get(id=milestone1.id).closed is False
assert project.milestones.get(id=milestone1.id).issues.count() == 2 assert project.milestones.get(id=milestone1.id).issues.count() == 2
url = reverse("milestones-move-issues-to-sprint", kwargs={"pk": milestone1.pk}) url = reverse("milestones-move-issues-to-sprint", kwargs={"pk": milestone1.pk})

View File

@ -0,0 +1,126 @@
import pytest
from .. import factories as f
from taiga.projects.milestones import services
pytestmark = pytest.mark.django_db
def test_issues_not_closed():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
closed_status = f.IssueStatusFactory.create(project=project,
is_closed=True)
f.create_issue(project=project, milestone=milestone1,
status=closed_status)
f.create_issue(project=project, milestone=milestone1)
assert not services.calculate_milestone_is_closed(milestone1)
def test_issues_closed():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
closed_status = f.IssueStatusFactory.create(project=project,
is_closed=True)
f.create_issue(project=project, milestone=milestone1,
status=closed_status)
assert services.calculate_milestone_is_closed(milestone1)
def test_stay_open_with_issues_but_closed_tasks():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
tasks_closed_status = f.TaskStatusFactory.create(project=project,
is_closed=True)
f.create_task(project=project, milestone=milestone1,
taskboard_order=1, status=tasks_closed_status)
f.create_issue(project=project, milestone=milestone1)
assert not services.calculate_milestone_is_closed(milestone1)
def test_tasks_not_closed():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
closed_status = f.TaskStatusFactory.create(project=project,
is_closed=True)
f.create_task(project=project, milestone=milestone1,
status=closed_status)
f.create_task(project=project, milestone=milestone1)
assert not services.calculate_milestone_is_closed(milestone1)
def test_tasks_closed():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
closed_status = f.TaskStatusFactory.create(project=project,
is_closed=True)
f.create_task(project=project, milestone=milestone1,
status=closed_status)
assert services.calculate_milestone_is_closed(milestone1)
def test_stay_open_with_tasks_but_closed_issues():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
issue_closed_status = f.IssueStatusFactory.create(project=project,
is_closed=True)
f.create_issue(project=project, milestone=milestone1,
status=issue_closed_status)
f.create_task(project=project, milestone=milestone1)
assert not services.calculate_milestone_is_closed(milestone1)
def test_uss_not_closed():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
closed_status = f.UserStoryStatusFactory.create(project=project,
is_closed=True)
f.create_userstory(project=project, milestone=milestone1,
status=closed_status)
f.create_userstory(project=project, milestone=milestone1)
assert not services.calculate_milestone_is_closed(milestone1)
def test_uss_closed():
project = f.ProjectFactory()
f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project)
closed_status = f.UserStoryStatusFactory.create(project=project,
is_closed=True)
f.create_userstory(project=project, milestone=milestone1,
sprint_order=1, status=closed_status,
is_closed=True)
assert services.calculate_milestone_is_closed(milestone1)