def _create_milestone(self, name, duedate, description): m = Milestone(self.env) m.name = name m.description = description if duedate: if isinstance(duedate, type("")): m.due = parse_date(duedate) else: m.due = duedate m.insert()
def test_milestone(self): milestone = Milestone(self.env) milestone.name = 'New target date' milestone.description = 'Lorem ipsum dolor sit amet' milestone.insert() so = self._get_so() self.assertEquals('%s:milestone:New target date' % self.basename, so.doc_id) self.assertEquals('milestone', so.realm), self.assertEquals('New target date', so.id) self.assertTrue('New target date' in so.title) self.assertTrue('Lorem ipsum' in so.title) self.assertTrue('Lorem ipsum' in so.oneline) self.assertTrue('Lorem ipsum' in so.body) milestone.description = 'No latin filler here' milestone.due = datetime(2001, 01, 01, tzinfo=utc) milestone.update() so = self._get_so() self.assertEquals('%s:milestone:New target date' % self.basename, so.doc_id) self.assertEquals('milestone', so.realm), self.assertEquals('New target date', so.id) self.assertEquals(milestone.due, so.changed) self.assertFalse('Lorem ipsum' in so.body) self.assertTrue('No latin filler here' in so.body)
def create_milestone(self, name, due=None, duration=20, db=None): """ Creates a milestone with the given name and due date, the latter should be a datetime object """ db, handle_ta = get_db_for_write(self.env, db) # Try to load the milestone first try: m = Milestone(self.env, name=name, db=db) except ResourceNotFound: # than we create it m = Milestone(self.env, db=db) m.name = name if due is not None and isinstance(due, datetime): dueo = due.toordinal() + duration m.due = mktime(datetime.fromordinal(dueo).timetuple()) m.insert() if handle_ta: try: db.commit() # workaround for the fact that trac in 0.11.1 doesn't set exists correctly... m._old_name = m.name except Exception, e: self.env.log.warning(exception_to_unicode(e)) db.rollback()
def test_can_save_due_date(self): # Added when Trac 0.12 was released as the format of the timestamp has changed in 0.12 milestone = Milestone(self.env) milestone.name = 'fnord' milestone.insert() # in trac 0.11.1, milestone._old_name is not set to "fnord" at # insert() time, only on init() or update() # so we need to reload the object to be able to run update() on it milestone = Milestone(self.env, name='fnord') expected_time = now().replace(microsecond=0) milestone.due = expected_time milestone.completed = expected_time milestone.update() loaded_milestone = Milestone(self.env, name='fnord') self.assert_equals(expected_time, loaded_milestone.due) self.assert_equals(expected_time, loaded_milestone.completed)