def testChangePrerequisiteSubject(self): self.showColumn('prerequisites') self.viewer.setSortOrderAscending(False) prerequisite = task.Task(subject='prerequisite') self.taskList.extend([self.task, prerequisite]) self.task.addPrerequisites([prerequisite]) prerequisite.addDependencies([self.task]) self.assertEqual('prerequisite', self.getItemText(0, 1)) prerequisite.setSubject('new') self.assertEqual('new', self.getItemText(0, 1))
def setUp(self): self.taskList = task.TaskList() self.effortList = effort.EffortList(self.taskList) self.originalTask = task.Task() self.taskList.append(self.originalTask) self.originalStop = date.DateTime.now() self.originalStart = self.originalStop - date.TimeDelta(hours=1) self.effort = effort.Effort(self.originalTask, self.originalStart, self.originalStop) self.originalTask.addEffort(self.effort)
def testSortByDueDate(self): self.task.addChild(self.child) task2 = task.Task(subject='zzz', plannedStartDateTime=date.Now() - date.ONE_SECOND) child2 = task.Task(subject='child 2', plannedStartDateTime=date.Now() - date.ONE_SECOND) task2.addChild(child2) child2.setParent(task2) self.taskList.extend([self.task, task2]) if self.viewer.isTreeViewer(): self.assertItems((self.task, 1), self.child, (task2, 1), child2) else: self.assertItems(self.child, child2, self.task, task2) child2.setDueDateTime(date.Now().endOfDay()) self.viewer.sortBy('dueDateTime') if self.viewer.isTreeViewer(): self.assertItems((task2, 1), child2, (self.task, 1), self.child) else: self.assertItems(child2, self.child, self.task, task2)
def testReverseSortOrder(self): self.task.addChild(self.child) task2 = task.Task(subject='zzz', plannedStartDateTime=date.Now() - date.ONE_SECOND) self.taskList.extend([self.task, task2]) self.viewer.setSortOrderAscending(False) if self.viewer.isTreeViewer(): self.assertItems(task2, (self.task, 1), self.child) else: self.assertItems(task2, self.task, self.child)
def testViewDueTodayShowsTasksWhoseChildrenAreDueToday(self): self.viewer.setFilteredByDueDateTime('Today') child = task.Task(subject='child', dueDateTime=date.Now().replace(hour=12)) self.task.addChild(child) self.taskList.append(self.task) if self.viewer.isTreeViewer(): self.assertItems((self.task, 1), child) else: self.assertItems(child)
def testSaveSelectionAddsCategories(self): task1 = task.Task() task2 = task.Task() self.taskFile.tasks().extend([task1, task2]) aCategory = category.Category('A Category') self.taskFile.categories().append(aCategory) for eachTask in self.taskFile.tasks(): eachTask.addCategory(aCategory) aCategory.addCategorizable(eachTask) self.iocontroller.saveselection(tasks=self.taskFile.tasks(), filename=self.filename1) taskFile = persistence.TaskFile() taskFile.setFilename(self.filename1) taskFile.load() try: self.assertEqual(1, len(taskFile.categories())) finally: taskFile.close() taskFile.stop()
def createTestFile(self): task.Task.settings = config.Settings(load=False) taskList = task.TaskList( [task.Task('test') for _ in range(self.nrTasks)]) taskfile = file(self.taskfilename, 'w') taskWriter = persistence.XMLWriter(taskfile) taskWriter.write(taskList, category.CategoryList(), note.NoteContainer(), createDefaultSyncConfig('fake'), 'fake') taskfile.close()
def testBothMarkCompleted(self): self.settings.set('file', 'autoimport', '["Todo.txt"]') self.settings.set('file', 'autoexport', '["Todo.txt"]') aTask = task.Task(subject='Whatever') self.taskFile.tasks().append(aTask) self.taskFile.save() now = date.Now() aTask.setCompletionDateTime(now) self.taskFile.save() self.assertEqual(aTask.completionDateTime(), now)
def testUndoMarkCompletedWhenFilteringCompletedTasks(self): self.settings.setboolean( 'behavior', 'markparentcompletedwhenallchildrencompleted', True) self.viewer.hideTaskStatus(task.status.completed) child1 = task.Task('child1') child2 = task.Task('child2') grandChild = task.Task('grandChild') self.task.addChild(child1) self.task.addChild(child2) child2.addChild(grandChild) self.taskList.append(self.task) self.viewer.expandAll() self.assertEqual(4, self.viewer.size()) markCompletedCommand = command.MarkCompletedCommand( self.taskList, [grandChild]) markCompletedCommand.do() self.assertEqual(2, self.viewer.size()) patterns.CommandHistory().undo() self.assertEqual(4, self.viewer.size())
def testIOErrorOnSaveSave(self): self.taskFile.raiseError = IOError self.taskFile.setFilename(self.filename1) def showerror(*args, **kwargs): # pylint: disable=W0613 self.showerrorCalled = True self.taskFile.tasks().append(task.Task()) self.iocontroller._saveSave(self.taskFile, showerror) # pylint: disable=W0212 self.failUnless(self.showerrorCalled)
def setUp(self): super(TaskViewerTestCase, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.task = task.Task(subject='task', startDateTime=date.Now()) self.child = task.Task(subject='child', startDateTime=date.Now()) self.child.setParent(self.task) self.taskFile = persistence.TaskFile() self.taskList = self.taskFile.tasks() self.viewer = TaskViewerUnderTest(self.frame, self.taskFile, self.settings) self.viewer.sortBy('subject') self.viewer.setSortOrderAscending() self.viewer.setSortByTaskStatusFirst(True) self.viewer.showTree(self.treeMode) self.newColor = (100, 200, 100, 255) attachment.Attachment.attdir = os.getcwd() self.originalLocale = locale.getlocale(locale.LC_ALL) tmpLocale = os.environ['LC_ALL'] if 'LC_ALL' in os.environ else '' locale.setlocale(locale.LC_ALL, tmpLocale)
def testAddGrandChildWithEffort(self): self.task.addChild(self.child2) grandChild = task.Task(subject='grandchild') grandChildEffort = effort.Effort( grandChild, self.composite.getStart(), self.composite.getStart() + date.ONE_HOUR) grandChild.addEffort(grandChildEffort) self.child2.addChild(grandChild) self.assertEqual(grandChildEffort.duration(), self.composite.duration(recursive=True))
def testNotificationForSetTask(self): events = [] def onEvent(newValue, sender): events.append((newValue, sender)) pub.subscribe(onEvent, effort.Effort.taskChangedEventType()) task2 = task.Task() self.effort.setTask(task2) self.assertEqual([(task2, self.effort)], events)
def setUp(self): super(EffortViewerRenderTestMixin, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.settings.set('effortviewer', 'aggregation', self.aggregation) self.taskFile = persistence.TaskFile() self.task = task.Task('task') self.taskFile.tasks().append(self.task) self.midnight = date.Now().startOfDay() self.viewer = self.createViewer()
def setUp(self): super(EffortViewerForSpecificTasksTest, self).setUp() self.settings = config.Settings(load=False) task.Task.settings = self.settings self.taskFile = persistence.TaskFile() self.task1 = task.Task('Task 1') self.task2 = task.Task('Task 2') self.taskFile.tasks().extend([self.task1, self.task2]) self.effort1 = effort.Effort(self.task1, date.DateTime(2006, 1, 1), date.DateTime(2006, 1, 2)) self.task1.addEffort(self.effort1) self.effort2 = effort.Effort(self.task2, date.DateTime(2006, 1, 2), date.DateTime(2006, 1, 3)) self.task2.addEffort(self.effort2) self.viewer = EffortViewerUnderTest(self.frame, self.taskFile, self.settings, tasksToShowEffortFor=task.TaskList( [self.task1]))
def testChangeTask_EmptyNotification(self): events = [] def onEvent(sender): events.append(sender) pub.subscribe(onEvent, effort.CompositeEffort.compositeEmptyEventType()) self.task.addEffort(self.effort1) self.effort1.setTask(task.Task()) self.assertEqual([self.composite], events)
def testTaskEffortComesBeforeChildEffort(self): child = task.Task('Child') child.setParent(self.task) self.task.addChild(child) self.taskList.append(child) childEffort = effort.Effort(child, date.DateTime(2004, 1, 1), date.DateTime(2008, 1, 2)) child.addEffort(childEffort) self.assertEqual([self.newestEffort, childEffort, self.oldestEffort], self.sorter)
def testAddEffortToGrandChild(self): self.task.addChild(self.child2) grandChild = task.Task(subject='grandchild') self.child2.addChild(grandChild) grandChildEffort = effort.Effort( grandChild, self.composite.getStart(), self.composite.getStart() + date.TimeDelta(hours=1)) grandChild.addEffort(grandChildEffort) self.assertEqual(grandChildEffort.duration(), self.composite.duration(recursive=True))
def testChangeDependencySubject(self): self.showColumn('dependencies') self.viewer.setSortOrderAscending(False) dependency = task.Task(subject='dependency') self.taskList.extend([self.task, dependency]) dependency.addPrerequisites([self.task]) self.task.addDependencies([dependency]) self.assertEqual('dependency', self.getItemText(0, 1)) dependency.setSubject('new') self.assertEqual('new', self.getItemText(0, 1))
def testDeleteEffort_StartOfBothPeriods(self): aTask = task.Task() self.taskList.append(aTask) # Make sure the start of the day and week are the same, # in other words, use a Monday anEffort = effort.Effort(aTask, date.DateTime(2006, 8, 28), date.DateTime(2006, 8, 29)) aTask.addEffort(anEffort) aTask.removeEffort(anEffort) self.failIf(self.effortPerDay)
def setUp(self): super(UpdatePerSecondViewerTestsMixin, self).setUp() task.Task.settings = self.settings = config.Settings(load=False) self.settings.set('taskviewer', 'columns', "['timeSpent']") self.taskFile = persistence.TaskFile() self.taskList = task.sorter.Sorter(self.taskFile.tasks(), sortBy='dueDateTime') self.updateViewer = self.createUpdateViewer() self.trackedTask = task.Task(subject='tracked') self.trackedEffort = effort.Effort(self.trackedTask) self.trackedTask.addEffort(self.trackedEffort) self.taskList.append(self.trackedTask)
def setUp(self): task.Task.settings = config.Settings(load=False) self.fd = StringIO.StringIO() self.fd.name = 'testfile.tsk' self.writer = persistence.XMLWriter(self.fd) self.task = task.Task() self.taskList = task.TaskList([self.task]) self.category = category.Category('Category') self.categoryContainer = category.CategoryList([self.category]) self.note = note.Note() self.noteContainer = note.NoteContainer([self.note])
def setUp(self): self.settings = task.Task.settings = config.Settings(load=False) self.yesterday = date.Now() - date.oneDay self.tomorrow = date.Now() + date.oneDay kwargs_list = self.taskCreationKeywordArguments() self.tasks = [task.Task(**kwargs) for kwargs in kwargs_list] # pylint: disable-msg=W0142 self.task = self.tasks[0] for index, eachTask in enumerate(self.tasks): taskLabel = 'task%d' % (index + 1) setattr(self, taskLabel, eachTask)
def testAddingNewEffortSetsActualStartDateTimeOfTask(self): newTask = task.Task() self.taskList.append(newTask) newEffortCommand = command.NewEffortCommand(self.effortList, [newTask]) newEffortCommand.do() newEffort = newEffortCommand.efforts[0] self.assertDoUndoRedo( lambda: self.assertEqual(newEffort.getStart(), newTask.actualStartDateTime()), lambda: self.assertEqual(date.DateTime(), newTask.actualStartDateTime()))
def setUp(self): task.Task.settings = config.Settings(load=False) self.taskList = task.TaskList() self.effortList = effort.EffortList(self.taskList) self.originalTask = task.Task() self.taskList.append(self.originalTask) self.originalStop = date.DateTime.now() self.originalStart = self.originalStop - date.ONE_HOUR self.effort = effort.Effort(self.originalTask, self.originalStart, self.originalStop) self.originalTask.addEffort(self.effort)
def setUp(self): super(ViewerTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.task = task.Task('task') self.taskFile.tasks().append(self.task) self.window = Window(self.frame) self.viewerContainer = gui.viewer.ViewerContainer( self.window, self.settings) self.viewer = self.createViewer() self.viewerContainer.addViewer(self.viewer)
def setUp(self): super(ViewerTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.task = task.Task() self.taskFile.tasks().append(self.task) self.notebook = widgets.AuiManagedFrameWithNotebookAPI(self.frame) self.viewerContainer = gui.viewer.ViewerContainer( self.notebook, self.settings, 'mainviewer') self.viewer = self.createViewer() self.viewerContainer.addViewer(self.viewer)
def testSubcontext(self): work = category.Category(subject='@Work') staff_meeting = category.Category(subject='Staff meeting') work.addChild(staff_meeting) self.taskFile.categories().append(work) discuss_proposal = task.Task(subject='Discuss the proposal') self.taskFile.tasks().append(discuss_proposal) discuss_proposal.addCategory(staff_meeting) staff_meeting.addCategorizable(discuss_proposal) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Discuss the proposal @Work->Staff_meeting\n', self.file.getvalue())
def testMultipleContexts(self): phone = category.Category(subject='@phone') food = category.Category(subject='@food') self.taskFile.categories().extend([phone, food]) pizza = task.Task(subject='Order pizza') self.taskFile.tasks().append(pizza) phone.addCategorizable(pizza) pizza.addCategory(phone) food.addCategorizable(pizza) pizza.addCategory(food) self.writer.write(self.viewer, self.settings, False) self.assertEqual('Order pizza @food @phone\n', self.file.getvalue())
def setUp(self): super(EffortViewerStatusMessageTest, self).setUp() self.settings = config.Settings(load=False) self.taskFile = persistence.TaskFile() self.task = task.Task() self.taskFile.tasks().append(self.task) self.effort1 = effort.Effort(self.task, date.DateTime(2006, 1, 1), date.DateTime(2006, 1, 2)) self.effort2 = effort.Effort(self.task, date.DateTime(2006, 1, 2), date.DateTime(2006, 1, 3)) self.viewer = EffortViewerUnderTest(self.frame, self.taskFile, self.settings)