Completed
Push — qml ( bc64a3...e96930 )
by Olivier
01:07
created

Test.test_new_delete()   A

Complexity

Conditions 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 7
rs 9.4285
1
import unittest
2
from PyQt5 import QtCore
3
from datetime import date, timedelta
4
5
from qtodotxt.lib import tasklib
6
from qtodotxt.lib.file import File
7
from qtodotxt.lib.filters import IncompleteTasksFilter, ContextFilter, ProjectFilter, DueThisMonthFilter, \
8
    DueThisWeekFilter, DueTodayFilter
9
from qtodotxt.controllers.main_controller import MainController
10
11
12
class Test(unittest.TestCase):
13
14
    @classmethod
15
    def setUpClass(cls):
16
        QtCore.QCoreApplication.setOrganizationName("QTodoTxt")
17
        QtCore.QCoreApplication.setApplicationName("Testing")
18
        QtCore.QSettings().setValue("Preferences/auto_save", False)
19
        cls.ctrl = MainController([])
20
        cls.ctrl.allTasks = cls.make_tasks()
21
    
22
    @staticmethod
23
    def make_tasks():
24
        today = date.today().isoformat()
25
        tomorrow = (date.today() + timedelta(days=1)).isoformat()
26
        nextweek = (date.today() + timedelta(days=8)).isoformat()
27
        tasks = []
28
        t = tasklib.Task("(A) Task due:{} +project1 @context2".format(today))
29
        tasks.append(t)
30
        t = tasklib.Task("(B) Task due:{} +project2 @context1".format(tomorrow))
31
        tasks.append(t)
32
        t = tasklib.Task("Task due:{}".format(tomorrow))
33
        tasks.append(t)
34
        t = tasklib.Task("x (B) Task due:{} +project1 @context1".format(tomorrow))
35
        tasks.append(t)
36
        t = tasklib.Task("x (B) Task due:{} +project2 @context3".format(tomorrow))
37
        tasks.append(t)
38
        return tasks
39
40
41
    @classmethod
42
    def tearDownClass(cls):
43
        pass
44
45
    def test_completed(self):
46
        self.ctrl.showCompleted = True
47
        self.ctrl.applyFilters()
48
        self.assertEqual(self.ctrl.filteredTasks, self.ctrl.allTasks)
49
        self.ctrl.showCompleted = False
50
        self.ctrl.applyFilters()
51
        self.assertEqual(len(self.ctrl.filteredTasks), len(self.ctrl.allTasks) - 2)
52
53
    def test_new_delete(self):
54
        count = len(self.ctrl.allTasks)
55
        idx = self.ctrl.newTask("My funny new task + PeaceProject")
56
        self.assertEqual(count + 1,  len(self.ctrl.allTasks))
57
        task = self.ctrl.filteredTasks[idx]
58
        self.ctrl.deleteTask(task)
59
        self.assertEqual(count,  len(self.ctrl.allTasks))
60
61
    def test_filter(self):
62
        self.ctrl.setFilters([DueTodayFilter()])
63
        self.assertEqual(len(self.ctrl.filteredTasks), 1)
64
        self.ctrl.setFilters([])
65