def test_get_issue_milestone(self): issue = self.issue milestone = self.milestone user = User('testuser') ims1 = IssueMilestone.create_by_issue(issue, milestone, user) ims = IssueMilestone.get_by_issue(issue) self.assertEqual(ims.id, ims1.id) self.assertEqual(ims.issue_id, ims1.issue_id) self.assertEqual(ims.milestone_id, ims1.milestone_id) self.assertEqual(ims.creator_id, ims1.creator_id)
def test_add_issue_milestone(self): issue = self.issue milestone = self.milestone user = User('testuser') ims = IssueMilestone.create_by_issue(issue, milestone, user) self.assertEqual(ims.milestone_id, milestone.id) self.assertEqual(int(ims.issue_id), issue.issue_id)
def add_milestone(self, user, name=None, milestone_id=None): from vilya.models.milestone import Milestone target = self.target if name: ms = Milestone.get_by_project(target, name=name) if not ms: ms = Milestone.create_by_project(self.target, name, user) elif milestone_id: ms = Milestone.get_by(milestone_id) else: return None ims = IssueMilestone.get_by_issue(self) if ims: ims.milestone_id = ms.id ims.save() else: ims = IssueMilestone.create_by_issue(self, ms, user)
def get_multi(self, state=None): # FIXME: cache milestone = self.milestone if state == 'open': return self._get_open_multi() if state == 'closed': return self._get_closed_multi() return IssueMilestone.gets_by(milestone_id=milestone.id)
def test_get_milestone(self): issue = self.issue milestone = self.milestone user = User('testuser') ims = IssueMilestone.create_by_issue(issue, milestone, user) ms = ims.milestone self.assertEqual(ms.id, milestone.id) self.assertEqual(ms.target_id, milestone.target_id) self.assertEqual(ms.target_type, milestone.target_type) self.assertEqual(ms.target_number, milestone.target_number) self.assertEqual(ms.creator_id, milestone.creator_id)
def _get_closed_multi(self): milestone = self.milestone tasks = [] rs = IssueMilestone.gets_by(milestone_id=milestone.id) for r in rs: issue = ProjectIssue.get_by_issue_id(r.issue_id) if not issue: continue if issue.closer_id: tasks.append(r) return tasks
def remove_milestone(self): ims = IssueMilestone.get_by_issue(self) if ims: ims.delete()
def milestone_id(self): rs = IssueMilestone.gets_by(issue_id=self.issue_id) return rs[0].milestone_id if rs else None
def has_milestone(self): rs = IssueMilestone.gets_by(issue_id=self.issue_id) return True if rs else None