Пример #1
0
 def _createTasksFromLines(self, lines):
     self.tasks = []
     for line in lines:
         task_text = line.strip()
         if task_text:
             task = Task(task_text)
             self.tasks.append(task)
Пример #2
0
 def test_future(self):
     task = Task('(D) do something +project1 t:2030-10-06')
     self.assertEqual(task.contexts, [])
     self.assertEqual(task.projects, ['project1'])
     self.assertFalse(task.is_complete)
     self.assertTrue(task.priority)
     self.assertTrue(task.is_future)
Пример #3
0
    def test_get_all_due_ranges(self):
        today = date.today().strftime('%Y-%m-%d')
        yesterday = (date.today() - timedelta(days=1)).strftime('%Y-%m-%d')

        self.file.tasks.extend([
            Task('x due:' + today + ' completed task of today'),
            Task('due:' + today + ' first task of today'),
            Task('due:' + today + ' second task of today'),
            Task('due:' + yesterday + ' task of yesterday'),
        ])
        self.saveAndReload()
        self.assertEqual(self.file.getAllDueRanges()[0], {
            'Today': 2,
            'This week': 2,
            'This month': 2,
            'Overdue': 1
        })
        self.assertIsInstance(self.file.getAllDueRanges()[1], dict)
Пример #4
0
 def test_single_task(self):
     text = 'due:1999-10-10 do something +project1 @context1'
     self.file.tasks.append(Task(text))
     self.saveAndReload()
     self.assertEqual(self.file.tasks[0].text, text)
     self.assertEqual(self.file.tasks[0].contexts, ['context1'])
     self.assertEqual(self.file.tasks[0].projects, ['project1'])
     self.assertFalse(self.file.tasks[0].is_complete)
     self.assertFalse(self.file.tasks[0].priority)
     self.assertEqual(self.file.tasks[0].due, date(1999, 10, 10))
Пример #5
0
 def test_custom_keywords(self):
     task = Task(
         '(B) do something +project1 mykey:myval titi:toto @context1 rest + of line pri:C'
     )
     self.assertEqual(task.contexts, ['context1'])
     self.assertEqual(task.projects, ['project1'])
     self.assertFalse(task.is_complete)
     self.assertEqual(task.priority, 'B')
     self.assertEqual(len(task.keywords), 3)
     self.assertIn("titi", task.keywords)
     self.assertEqual(task.keywords['pri'], "C")
Пример #6
0
    def test_basic(self):
        task = Task('do something')
        self.assertEqual(task.text, 'do something')
        self.assertEqual(len(task.contexts), 0)
        self.assertFalse(len(task.projects), 0)
        self.assertFalse(task.is_complete)
        self.assertFalse(task.priority)

        task = Task('do something @context1 @context2')
        self.assertEqual(task.contexts, ['context1', 'context2'])
        self.assertEqual(task.projects, [])
        self.assertFalse(task.is_complete)
        self.assertFalse(task.priority)

        task = Task('do something +project1 +project2')
        self.assertEqual(task.contexts, [])
        self.assertEqual(task.projects, ['project1', 'project2'])
        self.assertFalse(task.is_complete)
        self.assertFalse(task.priority)

        task = Task(
            '(E) do something +project1 @context1 +project2 rest of line @context2'
        )
        self.assertEqual(task.contexts, ['context1', 'context2'])
        self.assertEqual(task.projects, ['project1', 'project2'])
        self.assertFalse(task.is_complete)
        self.assertTrue(task.priority)
        self.assertEqual(
            task.text,
            '(E) do something +project1 @context1 +project2 rest of line @context2'
        )

        # task with + alone and complete
        task = Task(
            'x 2016-01-23 do something +project1 @context1 +project2 rest + of line @context2'
        )
        self.assertEqual(task.contexts, ['context1', 'context2'])
        self.assertEqual(task.projects, ['project1', 'project2'])
        self.assertTrue(task.is_complete)
        self.assertFalse(task.priority)
        self.assertEqual(task.completion_date, date(2016, 1, 23))
Пример #7
0
 def test_task_ordering(self):
     task1 = Task('x task1')
     task2 = Task('task2')
     task3 = Task('abc task2')
     task4 = Task('(D) task2')
     task5 = Task('(C) b task')
     task6 = Task('(C) a task')
     task7 = Task('(B) task2')
     task8 = Task('(A) task2')
     self.assertTrue(task2 < task3)
     self.assertTrue(
         task1 < task2 < task3 < task4 < task5 < task6 < task7 < task8)
     l = [task1, task2, task3, task4, task5, task6, task7, task8]
     l2 = [task2, task3, task1, task4, task5, task6, task7, task8]
     self.assertFalse(l == l2)
     l2.sort()
     self.assertTrue(l == l2)
Пример #8
0
    def test_completion(self):
        task = Task('(B) something +project1 @context1 pri:C')
        self.assertEqual(task.contexts, ['context1'])
        self.assertEqual(task.projects, ['project1'])
        self.assertFalse(task.is_complete)
        self.assertEqual(task.priority, 'B')
        self.assertEqual(len(task.keywords), 1)

        task.setCompleted()
        self.assertTrue(task.is_complete)
        self.assertEqual(task.completion_date, date.today())
        self.assertTrue(task.text.startswith("x "))

        task.setPending()
        self.assertFalse(task.is_complete)
        self.assertFalse(task.completion_date)
Пример #9
0
 def test_creation_date(self):
     task = Task(
         '(B) 2016-03-15 do something +project1 mykey:myval titi:toto @context1 rest + of line pri:C'
     )
     self.assertTrue(task.creation_date)
     self.assertEqual(task.creation_date, date(2016, 3, 15))
     task = Task('2016-03-15 do something')
     self.assertTrue(task.creation_date)
     self.assertEqual(task.creation_date, date(2016, 3, 15))
     task = Task('do something')
     self.assertFalse(task.creation_date)
     task = Task('(A) do something')
     self.assertFalse(task.creation_date)
     task = Task('x 2017-08-12 2016-03-15 do something')
     self.assertTrue(task.creation_date)
     self.assertEqual(task.creation_date, date(2016, 3, 15))
     task = Task('x 2017-08-12 do something')
     self.assertFalse(task.creation_date)
Пример #10
0
    def test_priority(self):
        self.assertEqual(Task("task").priority, "")
        self.assertEqual(Task("(a) task").priority, "")
        self.assertEqual(Task("x (a) task").priority, "")
        self.assertEqual(Task("x 2016-03-12 task").priority, "")
        self.assertEqual(Task("(A) task").priority, "A")
        t = Task("(A) task")
        self.assertEqual(t.priority, "A")
        t.increasePriority()
        self.assertEqual(t.priority, "A")
        t.decreasePriority()
        self.assertEqual(t.priority, "B")
        t.decreasePriority()
        t.decreasePriority()
        self.assertEqual(t.priority, "D")
        self.assertEqual(t.text, "(D) task")
        t.decreasePriority()
        self.assertEqual(t.priority, "")
        self.assertEqual(t.text, "task")

        t.increasePriority()
        t.increasePriority()
        self.assertEqual(t.priority, "C")
        for i in range(20):
            t.increasePriority()
        self.assertEqual(t.priority, "A")
        for i in range(20):
            t.decreasePriority()
        self.assertEqual(t.priority, "")

        # this task i wrongly formated, x should be followed by adate
        # self.assertEqual(Task("x (A) task").priority, Priority("A"))

        # A task with a priority lower than our default minimal priority
        t = Task("(M) task")
        t.increasePriority()
        self.assertEqual(t.priority, "L")
        t.decreasePriority()
        self.assertEqual(t.priority, "")
Пример #11
0
 def test_recurring_task_input_months(self):
     task = Task('(C) do something due:2016-09-05 rec:3m')
     self.assertIsNotNone(task.recursion)
     self.assertTrue(task.recursion.mode == recursiveMode.completitionDate)
     self.assertTrue(task.recursion.increment == str(3))
     self.assertTrue(task.recursion.interval == 'm')
Пример #12
0
 def test_priority_comparison(self):
     # this tests are a bit broken now that priority is only a character
     self.assertEqual(Task('task1').priority, Task('task2').priority)
     self.assertEqual(
         Task('(A) task1').priority,
         Task('(A) task2').priority)
     self.assertNotEqual(Task('(A) task').priority, Task('task').priority)
     self.assertLess(Task('(A) task').priority, Task('(B) task').priority)
     self.assertGreater(
         Task('(B) task').priority,
         Task('(A) task').priority)
     self.assertNotEqual(
         Task('(A) task1').priority,
         Task('(AA) task2').priority)
     self.assertEqual(
         Task('(1) task1').priority,
         Task('(1) task2').priority)
Пример #13
0
 def test_completeness_comparison(self):
     self.assertEqual(Task('task1').is_complete, Task('task2').is_complete)
     self.assertEqual(
         Task('x task1').is_complete,
         Task('x task2').is_complete)
     self.assertNotEqual(
         Task('task').is_complete,
         Task('x task').is_complete)
     self.assertNotEqual(
         Task('x task').is_complete,
         Task('task').is_complete)
     self.assertGreater(Task('task'), Task('x task'))
     self.assertLess(Task('x task'), Task('task'))
Пример #14
0
    def test_comparisons_comparison(self):
        self.assertEqual(Task('task'), Task('task'))
        self.assertEqual(Task('(A) task'), Task('(A) task'))

        # self.assertLess(Task('task1'), Task('task2'))
        self.assertLess(Task('x task'), Task('task'))
        self.assertGreater(Task('(A) task'), Task('(B) task'))
        self.assertGreater(Task('(A) task'), Task('task'))
        self.assertGreater(Task('(A) task'), Task('x (A) task'))

        # self.assertGreater(Task('task2'), Task('task1'))
        self.assertLess(Task('x task'), Task('task'))
        self.assertLess(Task('(B) task'), Task('(A) task'))
        self.assertLess(Task('task'), Task('(A) task'))
        self.assertLess(Task('x (A) task'), Task('(A) task'))
Пример #15
0
 def test_recurring_task_input_years(self):
     task = Task('(C) do something due:2016-09-05 rec:+1y')
     self.assertIsNotNone(task.recursion)
     self.assertTrue(task.recursion.mode == recursiveMode.originalDueDate)
     self.assertTrue(task.recursion.increment == str(1))
     self.assertTrue(task.recursion.interval == 'y')
Пример #16
0
 def test_recurring_task_wrong_keyword(self):
     task = Task('(B) do something rect:5d')
     self.assertIsNone(task.recursion)
Пример #17
0
 def test_recurring_task_wrong_increment(self):
     task = Task('(B) do something rec:0d')
     self.assertIsNone(task.recursion)
Пример #18
0
 def test_recurring_task_wrong_interval(self):
     task = Task('(B) do something rec:2g')
     self.assertIsNone(task.recursion)