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
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()
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> </tt> this is my task <font style="color:green">@context</font>' )
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> </tt> Test <font style="color:green">' '@<a style="color:green;" href="https://github.com/mNantern/QTodoTxt/">' 'github.com/mNantern/QTodoTxt/</a></font>')
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> </tt> ' '<a style="color:none;" href="https://github.com/mNantern/QTodoTxt/archive/master.zip">' 'github.com/mNantern/QTodoTxt/archive/master.zip</a>')
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> </tt> 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>')
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> </tt>this is my task <b><font style="color:red">*** Invalid date ' 'format, expected: YYYY-mm-dd! due:2014-04 ***</font></b>')
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> </tt> Download ' '<a style="color:none;" href="https://github.com/mNantern/QTodoTxt/archive/master.zip">' 'github.com/mNantern/QTodoTxt/archive/master.zip</a> and extract')
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> </tt> 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>')
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> </tt> this is my task ' '<font style="color:#64AAD0">+project</font> and ' 'some more words')
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> </tt> Test <font style="color:#64AAD0">' '+<a style="color:#64AAD0;" href="https://github.com/mNantern/QTodoTxt/">' 'github.com/mNantern/QTodoTxt/</a></font>')
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> </tt> this is my task ' '<font style="color:green">@context</font> and ' '<font style="color:#64AAD0">+project</font> and some more words')
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> </tt> 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>')
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> </font>this is my task' )
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> </font>this is my task' )
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> </tt> this is my task ' '<font style="color:#64AAD0">+project</font>')
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> </tt> this is my task ' '<font style="color:green">@context</font> and some more words')
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> </tt> this is my task <b>' '<font style="color:red">*** due:2014-13-01 Invalid date format, ' 'expected YYYY-MM-DD. ***</font></b>')
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> </tt> this is my task <b>' '<font style="color:red">*** t:2014-04-31 Invalid date format, ' 'expected YYYY-MM-DD. ***</font></b>')
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
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)
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> </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')
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))
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> </tt> this is my task <b>' '<font style="color:red">due:2014-04-01 12:34</font></b>')
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> </tt> this is my task <b>' '<font style="color:red">due:2014-04-01</font></b> 12:34')
def test_01(self): # Simple task should return simple html task = tasklib.Task('this is my task') self.assertEqual(self.htmlizer.task2html(task), '<tt> </tt> this is my task')
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> this is my task')
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> </font>this is my task')
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> </tt> this is my task <b>' '<font style="color:red">due:2014-04-01 23:59</font></b>')
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> </tt> this is my task ' '<font style="color:orange">t:2014-04-01 12:34</font>')