Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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()
Exemplo n.º 7
0
 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()
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
 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())
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
 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)
Exemplo n.º 12
0
 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))
Exemplo n.º 13
0
    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)
Exemplo n.º 14
0
    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()
Exemplo n.º 15
0
 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]))
Exemplo n.º 16
0
 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)
Exemplo n.º 17
0
 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)
Exemplo n.º 18
0
 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))
Exemplo n.º 19
0
 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))
Exemplo n.º 20
0
 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)
Exemplo n.º 21
0
 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)
Exemplo n.º 22
0
 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])
Exemplo n.º 23
0
 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)
Exemplo n.º 24
0
 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()))
Exemplo n.º 25
0
 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)
Exemplo n.º 26
0
 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)
Exemplo n.º 27
0
 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)
Exemplo n.º 28
0
 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())
Exemplo n.º 29
0
 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())
Exemplo n.º 30
0
 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)