def testTlistUrgency0(self): # Given a project with two tasks, one with a negative urgency prj = Project(name="prj") self.session.add(prj) t1 = Task(project=prj, title="t1") self.session.add(t1) t2 = Task(project=prj, title="t2", urgency=-1) self.session.add(t2) self.session.flush() # When I list tasks with -u 0 renderer = testutils.TestRenderer() self.cmd.do_t_list("-u 0", renderer=renderer) # Then the task with a negative urgency is not listed self.assertEqual(renderer.tasks, [t1])
def testRenderListSectionOrder(self): projectNames = "ccc", "aaa", "UPPER_CASE", "zzz", "mmm" projectList = [] for name in projectNames: prj = Project(name=name) task = Task(project=prj, title="Hello") self.session.add(prj) self.session.add(task) projectList.append(prj) self.session.flush() renderer = testutils.TestRenderer() self.cmd._renderList(renderer, projectList, filters=[], order=[]) self.assertEqual(list(renderer.taskDict.keys()), sorted(projectNames, key=lambda x: x.lower()))
def testRenderListSectionOrderKeywords(self): prj = Project(name="prj") keywordNames = ["kw_" + x for x in ("ccc", "aaa", "UPPER_CASE", "zzz", "mmm")] keywordList = [] for name in keywordNames: keyword = Keyword(name=name) task = Task(project=prj, title="Hello") TaskKeyword(task=task, keyword=keyword) self.session.add(task) keywordList.append(prj) self.session.flush() renderer = testutils.TestRenderer() self.cmd._renderList(renderer, [prj], filters=[], order=[], groupKeyword="kw_%") self.assertEqual(list(renderer.taskDict.keys()), sorted(keywordNames, key=lambda x: x.lower()))
def testTfilter(self): t1 = dbutils.addTask("x", "t1", interactive=False) t2 = dbutils.addTask("x", "t2", keywordDict={"kw1": None, "kw2": 12}, interactive=False) t3 = dbutils.addTask("y", "t3", interactive=False) testData = [ ("@kw1", {"x": [t2]}), ("@kw1 @kw2", {"x": [t2]}), ("x", {"x": [t1, t2]}), ("x @kw1", {"x": [t2]}), ("none", {"x": [t1, t2], "y": [t3]}), ] for filter, expectedTaskDict in testData: self.cmd.do_t_filter(filter) renderer = testutils.TestRenderer() self.cmd.do_t_list("", renderer=renderer) self.assertEqual(renderer.taskDict.keys(), expectedTaskDict.keys()) for key in renderer.taskDict.keys(): self.assertEqual([x.title for x in renderer.taskDict[key]], [x.title for x in expectedTaskDict[key]]) self.assertRaises(YokadiException, self.cmd.do_t_filter, "")