Modify create task factory

stable
Álex Hermida 2019-01-02 14:03:19 +01:00 committed by Alex Hermida
parent abf2b11220
commit 5f301450df
4 changed files with 29 additions and 16 deletions

View File

@ -24,14 +24,18 @@ from taiga.projects.issues.models import Issue
from taiga.projects.tasks.models import Task from taiga.projects.tasks.models import Task
from taiga.projects.userstories.models import UserStory from taiga.projects.userstories.models import UserStory
from . import models
def calculate_milestone_is_closed(milestone): def calculate_milestone_is_closed(milestone):
return (milestone.user_stories.all().count() > 0 and uss_check = milestone.user_stories.all().count() > 0 and all(
all([task.status is not None and task.status.is_closed for task in milestone.tasks.all()]) and [task.status is not None and task.status.is_closed for task in
all([user_story.is_closed for user_story in milestone.user_stories.all()]) or milestone.tasks.all()]) and all(
all([issue.is_closed for issue in milestone.issues.all()])) [user_story.is_closed for user_story in milestone.user_stories.all()])
issues_check = milestone.issues.all().count() > 0 and all(
[issue.is_closed for issue in milestone.issues.all()])
tasks_check = milestone.tasks.all().count() > 0 and all(
[task.is_closed for task in milestone.tasks.all()])
return uss_check or issues_check or tasks_check
def close_milestone(milestone): def close_milestone(milestone):

View File

@ -72,7 +72,6 @@ def update_milestone_of_tasks_when_edit_us(sender, instance, created, **kwargs):
def try_to_close_or_open_us_and_milestone_when_create_or_edit_us(sender, instance, created, **kwargs): def try_to_close_or_open_us_and_milestone_when_create_or_edit_us(sender, instance, created, **kwargs):
if instance._importing: if instance._importing:
return return
_try_to_close_or_open_us_when_create_or_edit_us(instance) _try_to_close_or_open_us_when_create_or_edit_us(instance)
_try_to_close_or_open_milestone_when_create_or_edit_us(instance) _try_to_close_or_open_milestone_when_create_or_edit_us(instance)

View File

@ -626,6 +626,10 @@ def create_issue(**kwargs):
return IssueFactory.create(**defaults) return IssueFactory.create(**defaults)
class Missing:
pass
def create_task(**kwargs): def create_task(**kwargs):
"Create a task and along with its dependencies." "Create a task and along with its dependencies."
owner = kwargs.pop("owner", None) owner = kwargs.pop("owner", None)
@ -636,13 +640,23 @@ def create_task(**kwargs):
if project is None: if project is None:
project = ProjectFactory.create(owner=owner) project = ProjectFactory.create(owner=owner)
status = kwargs.pop("status", None)
milestone = kwargs.pop("milestone", None)
defaults = { defaults = {
"project": project, "project": project,
"owner": owner, "owner": owner,
"status": TaskStatusFactory.create(project=project), "status": status or TaskStatusFactory.create(project=project),
"milestone": MilestoneFactory.create(project=project), "milestone": milestone or MilestoneFactory.create(project=project),
"user_story": UserStoryFactory.create(project=project, owner=owner),
} }
user_story = kwargs.pop("user_story", Missing)
defaults["user_story"] = (
UserStoryFactory.create(project=project, owner=owner, milestone=defaults["milestone"])
if user_story is Missing
else user_story
)
defaults.update(kwargs) defaults.update(kwargs)
return TaskFactory.create(**defaults) return TaskFactory.create(**defaults)

View File

@ -302,19 +302,15 @@ def test_api_move_tasks_to_another_sprint_close_previous(client):
f.MembershipFactory.create(project=project, user=project.owner, f.MembershipFactory.create(project=project, user=project.owner,
is_admin=True) is_admin=True)
milestone1 = f.MilestoneFactory.create(project=project) milestone1 = f.MilestoneFactory.create(project=project)
milestone2 = f.MilestoneFactory.create(project=project) milestone2 = f.MilestoneFactory.create(project=project)
closed_status = f.TaskStatusFactory.create(project=project, is_closed=True) closed_status = f.TaskStatusFactory.create(project=project, is_closed=True)
task1 = f.create_task(project=project, milestone=milestone1, taskboard_order=1, task1 = f.create_task(project=project, milestone=milestone1, taskboard_order=1,
status=closed_status) status=closed_status)
task2 = f.create_task(project=project, milestone=milestone1, taskboard_order=2) task2 = f.create_task(project=project, milestone=milestone1, taskboard_order=2)
milestone = project.milestones.get(id=milestone1.id) assert project.milestones.get(id=milestone1.id).tasks.count() == 2
manager_tasks = milestone.tasks
count_result = manager_tasks.count()
assert count_result == 2
assert not milestone1.closed assert not milestone1.closed
url = reverse("milestones-move-tasks-to-sprint", kwargs={"pk": milestone1.pk}) url = reverse("milestones-move-tasks-to-sprint", kwargs={"pk": milestone1.pk})