Beispiel #1
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.taskList = task.TaskList()
     year = date.Now().year
     self.task1 = task.Task(dueDateTime=date.DateTime(year + 1, 1, 1))
     self.task2 = task.Task(dueDateTime=date.DateTime(year + 2, 1, 1))
     self.task3 = task.Task()
Beispiel #2
0
 def createTestFile(self):
     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()
Beispiel #3
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.parent = task.Task(subject='*ABC$D', description='Parent description')
     self.child = task.Task(subject='DEF', description='Child description')
     self.parent.addChild(self.child)
     self.list = task.TaskList([self.parent, self.child])
     self.filter = base.SearchFilter(self.list)
 def setUp(self):
     self.settings = task.Task.settings = config.Settings(load=False)
     self.categories = category.CategoryList(self.createCategories())
     self.tasks = task.TaskList(self.createTasks())
     self.categorize()
     self.filter = category.filter.CategoryFilter(
         self.tasks, categories=self.categories, treeMode=self.treeMode)
Beispiel #5
0
 def setUp(self):
     a = self.a = task.Task('a')
     b = self.b = task.Task('b')
     c = self.c = task.Task('c')
     d = self.d = task.Task('d')
     self.list = task.TaskList([d, b, c, a])
     self.sorter = task.sorter.Sorter(self.list)
Beispiel #6
0
    def __init__(self, *args, **kwargs):
        self.__filename = self.__lastFilename = ''
        self.__needSave = self.__loading = False
        self.__tasks = task.TaskList()
        self.__categories = category.CategoryList()
        self.__notes = note.NoteContainer()
        self.__efforts = effort.EffortList(self.tasks())
        self.__guid = generate()
        self.__syncMLConfig = createDefaultSyncConfig(self.__guid)
        super(TaskFile, self).__init__(*args, **kwargs)
        # Register for tasks, categories, efforts and notes being changed so we
        # can monitor when the task file needs saving (i.e. is 'dirty'):
        for container in self.tasks(), self.categories(), self.notes():
            for eventType in container.modificationEventTypes():
                self.registerObserver(self.onDomainObjectAddedOrRemoved,
                                      eventType,
                                      eventSource=container)

        for eventType in (base.Object.markDeletedEventType(),
                          base.Object.markNotDeletedEventType()):
            self.registerObserver(self.onDomainObjectAddedOrRemoved, eventType)

        for eventType in task.Task.modificationEventTypes():
            self.registerObserver(self.onTaskChanged, eventType)
        for eventType in effort.Effort.modificationEventTypes():
            self.registerObserver(self.onEffortChanged, eventType)
        for eventType in note.Note.modificationEventTypes():
            self.registerObserver(self.onNoteChanged, eventType)
        for eventType in category.Category.modificationEventTypes():
            self.registerObserver(self.onCategoryChanged, eventType)
        for eventType in attachment.FileAttachment.modificationEventTypes() + \
                         attachment.URIAttachment.modificationEventTypes() + \
                         attachment.MailAttachment.modificationEventTypes():
            self.registerObserver(self.onAttachmentChanged, eventType)
Beispiel #7
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.task = task.Task()
     self.child = task.Task(parent=self.task)
     self.list = task.TaskList([self.task])
     self.filter = base.SelectedItemsFilter(self.list,
                                            selectedItems=[self.task])
Beispiel #8
0
 def setUp(self):
     self.taskList = task.TaskList()
     self.sorter = task.sorter.Sorter(self.taskList)        
     self.task1 = task.Task(subject='A', startDateTime=date.Now(),
                            dueDateTime=date.Now() + date.oneDay)
     self.task2 = task.Task(subject='B', startDateTime=date.Now(),
                            dueDateTime=date.Now() + date.oneHour)
     self.taskList.extend([self.task1, self.task2])
Beispiel #9
0
 def setUp(self):
     super(ReminderFrameTest, self).setUp()
     task.Task.settings = self.settings = config.Settings(load=False)
     self.task = task.Task('Task')
     self.taskList = task.TaskList()
     self.taskList.append(self.task)
     self.frame = gui.reminder.ReminderFrame(self.task, self.taskList,
                                             self.settings, self.frame)
Beispiel #10
0
 def createViewer(self):
     viewer = SearchableViewerUnderTest()
     # pylint: disable=W0201
     viewer.settings = self.settings
     viewer.settingsSection = lambda: 'taskviewer'
     presentation = viewer.createFilter(task.TaskList())
     viewer.presentation = lambda: presentation
     return viewer
Beispiel #11
0
 def createViewer(self):
     viewer = gui.viewer.mixin.SortableViewerMixin()
     viewer.settings = self.settings
     viewer.settingsSection = lambda: 'taskviewer'
     viewer.SorterClass = task.sorter.Sorter
     presentation = viewer.createSorter(task.TaskList())
     viewer.presentation = lambda: presentation
     return viewer
Beispiel #12
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.list = task.TaskList()
     self.filter = task.filter.ViewFilter(self.list, treeMode=self.treeMode)  # pylint: disable=E1101
     self.task = task.Task(subject='task')
     self.child = task.Task(subject='child')
     self.task.addChild(self.child)
     self.filter.append(self.task)
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.fd = StringIO.StringIO()
     self.fd.name = 'testfile.tsk'
     self.reader = persistence.XMLReader(self.fd)
     self.writer = persistence.XMLWriter(self.fd)
     self.taskList = task.TaskList()
     self.categories = category.CategoryList()
     self.notes = note.NoteContainer()
     self.syncMLConfig = SyncMLConfigNode('root')
     self.guid = u'GUID'
     self.fillContainers()
     tasks, categories, notes, syncMLConfig, guid = self.readAndWrite()
     self.tasksWrittenAndRead = task.TaskList(tasks)
     self.categoriesWrittenAndRead = category.CategoryList(categories)
     self.notesWrittenAndRead = note.NoteContainer(notes)
     self.syncMLConfigWrittenAndRead = syncMLConfig
     self.guidWrittenAndRead = guid
 def setUp(self):
     super(TaskViewerStatusMessagesTest, self).setUp()
     task.Task.settings = config.Settings(load=False)
     self.taskList = task.filter.ViewFilter(task.TaskList())
     self.task = task.Task('Task')
     self.viewer = DummyViewer(self.taskList)
     self.status = gui.viewer.task.TaskViewerStatusMessages(self.viewer)
     self.template1 = 'Tasks: %d selected, %d visible, %d total'
     self.template2 = 'Status: %d overdue, %d late, %d inactive, %d completed'
Beispiel #15
0
 def setUp(self):
     task.Task.settings = settings = config.Settings(load=False)
     self.taskList = task.TaskList()
     self.effortList = effort.EffortList(self.taskList)
     self.dummyWindow = DummyWindow()
     self.reminderController = ReminderControllerUnderTest(
         self.dummyWindow, self.taskList, self.effortList, settings)
     self.nowDateTime = date.DateTime.now()
     self.reminderDateTime = self.nowDateTime + date.ONE_HOUR
 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)
Beispiel #17
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.taskList = task.TaskList()
     self.categoryList = category.CategoryList()
     self.reader = persistence.CSVReader(self.taskList, self.categoryList)
     self.defaultReaderKwArgs = dict(encoding='utf-8',
                                     dialect='excel',
                                     hasHeaders=False,
                                     importSelectedRowsOnly=False,
                                     dayfirst=True)
Beispiel #18
0
    def setUp(self):
        self.settings = config.Settings(load=False)

        class ViewerUnderTest(gui.viewer.mixin.SortableViewerForTasksMixin):
            viewerImages = []

        self.viewer = ViewerUnderTest()
        self.viewer.settings = self.settings
        self.viewer.settingsSection = lambda: 'taskviewer'
        self.viewer.presentation = lambda: task.sorter.Sorter(task.TaskList())
Beispiel #19
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)
Beispiel #20
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])
Beispiel #21
0
 def setUp(self):
     super(TaskCommandTestCase, self).setUp()
     task.Task.settings = config.Settings(load=False)
     self.list = self.taskList = task.TaskList()
     self.categories = category.CategoryList()
     self.category = category.Category('cat')
     self.categories.append(self.category)
     self.task1 = task.Task('task1', startDateTime=date.Now())
     self.task2 = task.Task('task2', startDateTime=date.Now())
     self.taskList.append(self.task1)
     self.originalList = [self.task1]
Beispiel #22
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.list = task.TaskList()
     self.filter = task.filter.ViewFilter(self.list, treeMode=self.treeMode)  # pylint: disable=E1101
     self.task = task.Task(subject='task')
     self.dueToday = task.Task(subject='due today',
                               dueDateTime=date.Now().endOfDay())
     self.dueTomorrow = task.Task(subject='due tomorrow',
                                  dueDateTime=date.Tomorrow().endOfDay())
     self.dueYesterday = task.Task(subject='due yesterday',
                                   dueDateTime=date.Yesterday().endOfDay())
     self.child = task.Task(subject='child')
Beispiel #23
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.taskList = task.TaskList()
     self.effortList = effort.EffortList(self.taskList)
     self.sorter = effort.EffortSorter(self.effortList)
     self.task = task.Task('Task')
     self.oldestEffort = effort.Effort(self.task, date.DateTime(2004, 1, 1),
                                       date.DateTime(2004, 1, 2))
     self.newestEffort = effort.Effort(self.task, date.DateTime(2004, 2, 1),
                                       date.DateTime(2004, 2, 2))
     self.task.addEffort(self.oldestEffort)
     self.task.addEffort(self.newestEffort)
     self.taskList.append(self.task)
Beispiel #24
0
    def testMenuIsUpdatedWhenTemplatesAreSaved(self):
        uicommands = [None]  # Just a separator for testing purposes

        class TaskTemplateMenu(gui.menu.TaskTemplateMenu):
            def getUICommands(self):
                return uicommands

        settings = config.Settings(load=False)
        taskList = task.TaskList()
        menu = TaskTemplateMenu(self.frame, taskList, settings)
        self.assertEqual(1, len(menu))
        uicommands.append(None)  # Add another separator
        pub.sendMessage('templates.saved')
        self.assertEqual(2, len(menu))
Beispiel #25
0
 def setUp(self):
     super(EffortStopTest, self).setUp()
     task.Task.settings = config.Settings(load=False)
     self.taskList = task.TaskList()
     self.task = task.Task('Task')
     self.task2 = task.Task('Task 2')
     self.effort1 = effort.Effort(self.task)
     self.effort2 = effort.Effort(self.task)
     self.taskList.append(self.task)
     self.effortList = effort.EffortList(self.taskList)
     self.viewer = DummyViewer()
     self.effortStop = gui.uicommand.EffortStop(viewer=self.viewer,
                                                effortList=self.effortList,
                                                taskList=self.taskList)
Beispiel #26
0
 def setUp(self):
     task.Task.settings = config.Settings(load=False)
     self.parent = task.Task('parent')
     self.parentCategory = category.Category('parent')
     self.parentCategory.addCategorizable(self.parent)
     self.child = task.Task()
     self.childCategory = category.Category('child')
     self.childCategory.addCategorizable(self.child)
     self.parent.addChild(self.child)
     self.unusedCategory = category.Category('unused')
     self.list = task.TaskList([self.parent, self.child])
     self.categories = category.CategoryList(
         [self.parentCategory, self.childCategory, self.unusedCategory])
     self.filter = category.filter.CategoryFilter(
         self.list, categories=self.categories, treeMode=self.treeMode)
Beispiel #27
0
 def setUp(self):
     task.Task.settings = settings = config.Settings(load=False)
     now = self.now = date.Now()
     self.yesterday = now - date.ONE_DAY
     self.tomorrow = now + date.ONE_DAY
     self.parent = task.Task('parent')
     self.child = task.Task('child')
     self.parent.addChild(self.child)
     self.child.setParent(self.parent)
     self.child2 = task.Task('child2', plannedStartDateTime=now)
     self.grandchild = task.Task('grandchild', plannedStartDateTime=now)
     settings.set('behavior', 'markparentcompletedwhenallchildrencompleted',
                  str(self.markParentCompletedWhenAllChildrenCompleted))
     self.taskList = task.TaskList(
         [self.parent, self.child2, self.grandchild])
Beispiel #28
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]))
Beispiel #29
0
    def mergeDiskChanges(self):
        self.__loading = True
        try:
            if os.path.exists(
                    self.__filename
            ):  # Not using self.exists() because DummyFile.exists returns True
                # Instead of writing the content of memory, merge changes
                # with the on-disk version and save the result.
                self.__monitor.freeze()
                try:
                    fd = self._openForRead()
                    tasks, categories, globalcategories, notes, syncMLConfig, allChanges, guid = self._read(
                        fd)
                    fd.close()

                    self.__changes = allChanges

                    if self.__saving:
                        for devGUID, changes in self.__changes.items():
                            if devGUID != self.__monitor.guid():
                                changes.merge(self.__monitor)

                    sync = ChangeSynchronizer(self.__monitor, allChanges)

                    sync.sync([(self.categories(),
                                category.CategoryList(categories)),
                               (self.tasks(), task.TaskList(tasks)),
                               (self.notes(), note.NoteContainer(notes))])

                    self.__changes[self.__monitor.guid()] = self.__monitor
                finally:
                    self.__monitor.thaw()
            else:
                self.__changes = {self.__monitor.guid(): self.__monitor}

            self.__monitor.resetAllChanges()
            name, fd = self._openForWrite()
            xml.ChangesXMLWriter(fd).write(self.changes())
            fd.close()
            if os.path.exists(self.__filename + '.delta'):
                os.remove(self.__filename + '.delta')
            if name is not None:  # Unit tests (AutoSaver)
                os.rename(name, self.__filename + '.delta')

            self.__changedOnDisk = False
        finally:
            self.__loading = False
Beispiel #30
0
 def setUp(self):
     self.events = []
     task.Task.settings = config.Settings(load=False)
     self.task = task.Task()
     self.taskList = task.TaskList()
     self.effortList = effort.EffortList(self.taskList)
     self.taskList.append(self.task)
     patterns.Publisher().registerObserver(
         self.onEvent,
         eventType=self.effortList.addItemEventType(),
         eventSource=self.effortList)
     patterns.Publisher().registerObserver(
         self.onEvent,
         eventType=self.effortList.removeItemEventType(),
         eventSource=self.effortList)
     self.effort = effort.Effort(self.task, date.DateTime(2004, 1, 1),
                                 date.DateTime(2004, 1, 2))