def testFullRendering(self): dbutils.getOrCreateProject("x", interactive=False) dbutils.getOrCreateKeyword("k1", interactive=False) dbutils.getOrCreateKeyword("k2", interactive=False) t1 = dbutils.addTask("x", "t1", {}) t2 = dbutils.addTask("x", "t2", {"k1": None, "k2": 12}) longTask = dbutils.addTask("x", "A longer task name", {}) longTask.description = "And it has a description" out = StringIO() renderer = TextListRenderer(out, termWidth=80, cryptoMgr=YokadiCryptoManager()) renderer.addTaskList("Foo", [t2, longTask]) self.assertEqual(renderer.maxTitleWidth, len(longTask.title) + 1) renderer.end() out = stripColor(out.getvalue()) expected = \ " Foo \n" \ + "ID│Title │U │S│Age │Due date\n" \ + "──┼───────────────────┼───┼─┼────────┼────────\n" \ + "2 │t2 (k1, k2) │0 │N│0m │ \n" \ + "3 │A longer task name*│0 │N│0m │ \n" self.assertMultiLineEqual(out, expected)
def testFullRendering(self): dbutils.getOrCreateProject("x", interactive=False) dbutils.getOrCreateKeyword("k1", interactive=False) dbutils.getOrCreateKeyword("k2", interactive=False) dbutils.addTask("x", "t1", {}) t2 = dbutils.addTask("x", "t2", {"k1": None, "k2": 12}) longTask = dbutils.addTask("x", "A longer task name", {}) longTask.description = "And it has a description" out = StringIO() renderer = TextListRenderer(out, termWidth=80) renderer.addTaskList("Foo", [t2, longTask]) self.assertEqual(renderer.maxTitleWidth, len(longTask.title) + 1) renderer.end() out = stripColor(out.getvalue()) expected = \ " Foo \n" \ "ID│Title │U │S│Age │Due date\n" \ "──┼───────────────────┼───┼─┼────────┼────────\n" \ "2 │t2 (k1, k2) │0 │N│0m │ \n" \ "3 │A longer task name*│0 │N│0m │ \n" self.assertMultiLineEqual(out, expected)
def do_n_list(self, line): args, projectList, filters = self._parseListLine( self.parser_n_list(), line) if args.decrypt: self.cryptoMgr.force_decrypt = True filters.append(parseutils.KeywordFilter("@" + NOTE_KEYWORD).filter()) order = Task.q.creationDate renderer = TextListRenderer(tui.stdout, cryptoMgr=self.cryptoMgr, renderAsNotes=True) self._renderList(renderer, projectList, filters, order, limit=None, groupKeyword=args.keyword)
def testTitleFormater(self): dbutils.getOrCreateProject("x", interactive=False) dbutils.getOrCreateKeyword("k1", interactive=False) dbutils.getOrCreateKeyword("k2", interactive=False) t1 = dbutils.addTask("x", "t1", {}) t2 = dbutils.addTask("x", "t2", {"k1": None, "k2": 12}) longerTask = dbutils.addTask("x", "A longer task name", {}) longerTask.description = "And it has a description" out = StringIO() renderer = TextListRenderer(out, termWidth=80, cryptoMgr=YokadiCryptoManager()) renderer.addTaskList("Foo", [t1]) self.assertEquals(renderer.maxTitleWidth, 5) renderer.end() expected = unicode(\ "%(CYAN)s Foo %(RESET)s\n" \ + "%(BOLD)sID|Title|U |S|Age |Due date%(RESET)s\n" \ + "--------------------------------\n" \ + "1 |t1 %(RESET)s|0 |N|0m | \n" \ ) % dict(CYAN=C.CYAN, RESET=C.RESET, BOLD=C.BOLD) testutils.multiLinesAssertEqual(self, out.getvalue(), expected) out = StringIO() renderer = TextListRenderer(out, termWidth=80, cryptoMgr=YokadiCryptoManager()) renderer.addTaskList("Foo", [t1, t2]) self.assertEquals(renderer.maxTitleWidth, 11) renderer.end() expected = unicode(\ "%(CYAN)s Foo %(RESET)s\n" \ + "%(BOLD)sID|Title |U |S|Age |Due date%(RESET)s\n" \ + "--------------------------------------\n" \ + "1 |t1 %(RESET)s|0 |N|0m | \n" \ + "2 |t2 (%(BOLD)sk1, k2)%(RESET)s|0 |N|0m | \n" \ ) % dict(CYAN=C.CYAN, RESET=C.RESET, BOLD=C.BOLD) testutils.multiLinesAssertEqual(self, out.getvalue(), expected) out = StringIO() renderer = TextListRenderer(out, termWidth=80, cryptoMgr=YokadiCryptoManager()) renderer.addTaskList("Foo", [t2, longerTask]) self.assertEquals(renderer.maxTitleWidth, len(longerTask.title) + 1) renderer.end() expected = unicode(\ "%(CYAN)s Foo %(RESET)s\n" \ + "%(BOLD)sID|Title |U |S|Age |Due date%(RESET)s\n" \ + "----------------------------------------------\n" \ + "2 |t2 (%(BOLD)sk1, k2) %(RESET)s|0 |N|0m | \n" \ + "3 |A longer task name%(RESET)s*|0 |N|0m | \n" \ ) % dict(CYAN=C.CYAN, RESET=C.RESET, BOLD=C.BOLD) testutils.multiLinesAssertEqual(self, out.getvalue(), expected)
def testTitleFormater(self): dbutils.getOrCreateProject("x", interactive=False) dbutils.getOrCreateKeyword("k1", interactive=False) dbutils.getOrCreateKeyword("k2", interactive=False) t1 = dbutils.addTask("x", "t1", {}) t2 = dbutils.addTask("x", "t2", {"k1": None, "k2": 12}) longerTask = dbutils.addTask("x", "A longer task name", {}) longerTask.description = "And it has a description" out = StringIO() renderer = TextListRenderer(out, termWidth=80, cryptoMgr=YokadiCryptoManager()) renderer.addTaskList("Foo", [t1]) self.assertEqual(renderer.maxTitleWidth, 5) renderer.end() expected = str(\ "%(CYAN)s Foo %(RESET)s\n" \ + "%(BOLD)sID|Title|U |S|Age |Due date%(RESET)s\n" \ + "--------------------------------\n" \ + "1 |t1 %(RESET)s|0 |N|0m | \n" \ ) % dict(CYAN=C.CYAN, RESET=C.RESET, BOLD=C.BOLD) testutils.multiLinesAssertEqual(self, out.getvalue(), expected) out = StringIO() renderer = TextListRenderer(out, termWidth=80, cryptoMgr=YokadiCryptoManager()) renderer.addTaskList("Foo", [t1, t2]) self.assertEqual(renderer.maxTitleWidth, 11) renderer.end() expected = str(\ "%(CYAN)s Foo %(RESET)s\n" \ + "%(BOLD)sID|Title |U |S|Age |Due date%(RESET)s\n" \ + "--------------------------------------\n" \ + "1 |t1 %(RESET)s|0 |N|0m | \n" \ + "2 |t2 (%(BOLD)sk1, k2)%(RESET)s|0 |N|0m | \n" \ ) % dict(CYAN=C.CYAN, RESET=C.RESET, BOLD=C.BOLD) testutils.multiLinesAssertEqual(self, out.getvalue(), expected) out = StringIO() renderer = TextListRenderer(out, termWidth=80, cryptoMgr=YokadiCryptoManager()) renderer.addTaskList("Foo", [t2, longerTask]) self.assertEqual(renderer.maxTitleWidth, len(longerTask.title) + 1) renderer.end() expected = str(\ "%(CYAN)s Foo %(RESET)s\n" \ + "%(BOLD)sID|Title |U |S|Age |Due date%(RESET)s\n" \ + "----------------------------------------------\n" \ + "2 |t2 (%(BOLD)sk1, k2) %(RESET)s|0 |N|0m | \n" \ + "3 |A longer task name%(RESET)s*|0 |N|0m | \n" \ ) % dict(CYAN=C.CYAN, RESET=C.RESET, BOLD=C.BOLD) testutils.multiLinesAssertEqual(self, out.getvalue(), expected)