def _createMockFile(self):
     today = today = date.today().strftime('%Y-%m-%d')
     file = File()
     file.tasks.append(tasklib.Task('my task1 @context1'))
     file.tasks.append(tasklib.Task('my task2 @context1 @context2'))
     file.tasks.append(tasklib.Task('due:' + today + ' my task3 +project1 @context2'))
     file.tasks.append(tasklib.Task('due:' + today + ' my task4'))
     return file
示例#2
0
 def createTask(self, template_task=None):
     """
     Add a task and start editing it with inline editor
     """
     if isinstance(template_task, tasklib.Task):
         task = tasklib.Task(template_task.text)
     else:
         task = tasklib.Task("")
     idxs = self.selectedIndexes()
     item = self.addTask(task, idxs, new=True)
     self.scrollToItem(item)
     self.itemWidget(item).edit()
示例#3
0
 def test_02(self):
     # Test task with a single context at the end
     task = tasklib.Task('this is my task @context')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <font style="color:green">@context</font>'
     )
示例#4
0
 def test_33(self):
     # Test task with an URL in context
     task = tasklib.Task('Test @https://github.com/mNantern/QTodoTxt/')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;Test <font style="color:green">'
                      '@<a style="color:green;" href="https://github.com/mNantern/QTodoTxt/">'
                      'github.com/mNantern/QTodoTxt/</a></font>')
示例#5
0
 def test_32(self):
     # Test task with solely an URL
     task = tasklib.Task('https://github.com/mNantern/QTodoTxt/archive/master.zip')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;'
                      '<a style="color:none;" href="https://github.com/mNantern/QTodoTxt/archive/master.zip">'
                      'github.com/mNantern/QTodoTxt/archive/master.zip</a>')
示例#6
0
 def test_30(self):
     # Test task with an invalid threshold minute
     task = tasklib.Task('this is my task t:2014-04-31T12:99')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
                      '<font style="color:red">*** t:2014-04-31T12:99 Invalid date format, '
                      'expected yyyy-mm-dd or yyyy-mm-ddThh:mm. ***</font></b>')
示例#7
0
 def test_12(self):
     # Test task with an invalid due date
     task = tasklib.Task('this is my task due:2014-04')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<tt>&nbsp;&nbsp;&nbsp;</tt>this is my task <b><font style="color:red">*** Invalid date '
         'format, expected: YYYY-mm-dd! due:2014-04 ***</font></b>')
示例#8
0
 def test_31(self):
     # Test task with an URL
     task = tasklib.Task('Download https://github.com/mNantern/QTodoTxt/archive/master.zip and extract')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;Download '
                      '<a style="color:none;" href="https://github.com/mNantern/QTodoTxt/archive/master.zip">'
                      'github.com/mNantern/QTodoTxt/archive/master.zip</a> and extract')
示例#9
0
 def test_22(self):
     # Test task with an invalid due time corner case
     task = tasklib.Task('this is my task due:2014-04-01T24:00')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
                      '<font style="color:red">*** due:2014-04-01T24:00 Invalid date format, '
                      'expected yyyy-mm-dd or yyyy-mm-ddThh:mm. ***</font></b>')
示例#10
0
 def test_05(self):
     # Test task with a single project at the center
     task = tasklib.Task('this is my task +project and some more words')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task '
                      '<font style="color:#64AAD0">+project</font> and '
                      'some more words')
示例#11
0
 def test_34(self):
     # Test task with an URL in project
     task = tasklib.Task('Test +https://github.com/mNantern/QTodoTxt/')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;Test <font style="color:#64AAD0">'
                      '+<a style="color:#64AAD0;" href="https://github.com/mNantern/QTodoTxt/">'
                      'github.com/mNantern/QTodoTxt/</a></font>')
示例#12
0
 def test_06(self):
     # Test task with a single context and a single project
     task = tasklib.Task('this is my task @context and +project and some more words')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task '
                      '<font style="color:green">@context</font> and '
                      '<font style="color:#64AAD0">+project</font> and some more words')
示例#13
0
 def test_14(self):
     # Test task with an invalid due date
     task = tasklib.Task('this is my task due:abc')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
                      '<font style="color:red">*** due:abc Invalid date format, '
                      'expected yyyy-mm-dd or yyyy-mm-ddThh:mm. ***</font></b>')
示例#14
0
 def test_10(self):
     # Test task with priority C
     task = tasklib.Task('(C) this is my task')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<font style="color:navy"><tt>(C)</tt>&nbsp;</font>this is my task'
     )
示例#15
0
 def test_09(self):
     # Test task with priority B
     task = tasklib.Task('(B) this is my task')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<font style="color:green"><tt>(B)</tt>&nbsp;</font>this is my task'
     )
示例#16
0
 def test_04(self):
     # Test task with a single project at the end
     task = tasklib.Task('this is my task +project')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task '
         '<font style="color:#64AAD0">+project</font>')
示例#17
0
 def test_03(self):
     # Test task with a single context at the center
     task = tasklib.Task('this is my task @context and some more words')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task '
         '<font style="color:green">@context</font> and some more words')
示例#18
0
 def test_14(self):
     # Test task with an invalid due month
     task = tasklib.Task('this is my task due:2014-13-01')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
         '<font style="color:red">*** due:2014-13-01 Invalid date format, '
         'expected YYYY-MM-DD. ***</font></b>')
示例#19
0
 def test_19(self):
     # Test task with an invalid threshold day
     task = tasklib.Task('this is my task t:2014-04-31')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
         '<font style="color:red">*** t:2014-04-31 Invalid date format, '
         'expected YYYY-MM-DD. ***</font></b>')
示例#20
0
 def _createTask(self, text):
     if int(QtCore.QSettings().value("add_created_date", 0)):
         text = self._removeCreationDate(text)
         text = self._addCreationDate(text)
     task = tasklib.Task(text)
     self.view.addTask(task)
     self._task_created(task)
     return task
示例#21
0
 def createTask(self):
     (text, ok) = self._task_editor_service.createTask()
     if ok and text:
         if int(QtCore.QSettings().value("add_created_date", 0)):
             text = self._addCreationDate(text)
         task = tasklib.Task(text)
         self.view.addTask(task)
         self.view.clearSelection()
         self.view.selectTask(task)
         self.taskCreated.emit(task)
示例#22
0
 def test_07(self):
     # Test task with a two contexts and a three projects
     task = tasklib.Task('this is my task @context1 and @context2 and '
                         '+project1 +project2 and +project3 some more '
                         'words')
     self.assertEqual(
         self.htmlizer.task2html(task),
         '<tt>&nbsp;&nbsp;&nbsp;</tt>this is my task <font color="green">@context1</font> and '
         '<font color="green">@context2</font> and <font style="color:#64AAD0">+project1</font> '
         '<font style="color:#64AAD0">+project2</font> and <font style="color:#64AAD0">+project3</font>'
         ' some more words')
示例#23
0
    def test_showFilters_afterAddingNewContext(self):
        # arrange
        view = FakeTreeView()
        controller = FiltersTreeController(view)
        file = self._createMockFile()
        controller.showFilters(file)
        original_filter0 = view.filters[0]
        view.clearSelection()
        view.selectFilter(view.filters[0])
        file.tasks[2] = tasklib.Task(file.tasks[2].text + " @context3")

        # act
        controller.showFilters(file)

        # assert
        self.assertEquals(
            7, len(view.filters),
            'There should be 7 filters (actual: %s)' % view.selectedFilters)

        sortedFilter = sorted(view.filters, key=lambda filter: filter.text)
        print(sortedFilter)

        self.assertEquals(
            1, len(view.selectedFilters),
            'There should be 1 selected filters (actual: %s)' %
            view.selectedFilters)

        # Due filters are not sorted
        filter1_text = sortedFilter[3].text
        self.assertEqual(
            "context1 (2)", filter1_text,
            'Filter #1 context should be "context1 (2)" (actual: "%s")' %
            filter1_text)

        expectedselectedfilter = original_filter0.text
        self.assertSequenceEqual(
            expectedselectedfilter, view.selectedFilters[0].text,
            'Wrong selected filters (expected: %s, actual: %s)' %
            (expectedselectedfilter, view.selectedFilters))
示例#24
0
 def test_13(self):
     # Test task with a valid due date and time
     task = tasklib.Task('this is my task due:2014-04-01T12:34')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
                      '<font style="color:red">due:2014-04-01 12:34</font></b>')
示例#25
0
 def test_18(self):
     # Test task with space in due time instead of T. This is valid, but gives an unexpected result
     task = tasklib.Task('this is my task due:2014-04-01 12:34')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
                      '<font style="color:red">due:2014-04-01</font></b> 12:34')
示例#26
0
 def test_01(self):
     # Simple task should return simple html
     task = tasklib.Task('this is my task')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task')
示例#27
0
 def test_11(self):
     # Test task with priority D
     task = tasklib.Task('(D) this is my task')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>(D)</tt>&nbsp;this is my task')
示例#28
0
 def test_08(self):
     # Test task with priority A
     task = tasklib.Task('(A) this is my task')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<font style="color:red"><tt>(A)</tt>&nbsp;</font>this is my task')
示例#29
0
 def test_21(self):
     # Test task with a valid due time corner case
     task = tasklib.Task('this is my task due:2014-04-01T23:59')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task <b>'
                      '<font style="color:red">due:2014-04-01 23:59</font></b>')
示例#30
0
 def test_24(self):
     # Test task with a valid threshold date and time
     task = tasklib.Task('this is my task t:2014-04-01T12:34')
     self.assertEqual(self.htmlizer.task2html(task),
                      '<tt>&nbsp;&nbsp;&nbsp;</tt>&nbsp;this is my task '
                      '<font style="color:orange">t:2014-04-01 12:34</font>')