def _try_to_close_or_open_milestone_when_create_or_edit_issue(instance): if instance._importing: return from tina.projects.milestones import services as milestone_service if instance.milestone_id: if milestone_service.calculate_milestone_is_closed(instance.milestone): milestone_service.close_milestone(instance.milestone) else: milestone_service.open_milestone(instance.milestone) if instance.prev and instance.prev.milestone_id and instance.prev.milestone_id != instance.milestone_id: if milestone_service.calculate_milestone_is_closed( instance.prev.milestone): milestone_service.close_milestone(instance.prev.milestone) else: milestone_service.open_milestone(instance.prev.milestone)
def _try_to_close_milestone_when_delete_issue(instance): if instance._importing: return from tina.projects.milestones import services as milestone_service with suppress(ObjectDoesNotExist): if instance.milestone_id and milestone_service.calculate_milestone_is_closed( instance.milestone): milestone_service.close_milestone(instance.milestone)
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_uss_but_closed_tasks(): 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, user_story=None) f.create_userstory(project=project, milestone=milestone1) assert not 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_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)
def test_stay_open_with_issues_but_closed_uss(): project = f.ProjectFactory() f.MembershipFactory.create(project=project, user=project.owner, is_admin=True) milestone1 = f.MilestoneFactory.create(project=project) us_closed_status = f.UserStoryStatusFactory.create(project=project, is_closed=True) f.create_userstory(project=project, milestone=milestone1, status=us_closed_status, is_closed=True) f.create_issue(project=project, milestone=milestone1) assert not services.calculate_milestone_is_closed(milestone1)