def test_sort_items(self): n = node.List() sub_a = n.add('a', sort=3) sub_b = n.add('b', sort=0) sub_c = n.add('c', sort=5) sub_d = n.add('d', sort=1) sub_e = n.add('e', sort=2) sub_f = n.add('f', sort=4) n.sort_items() self.assertEqual(sub_a.id, n.items[0].id) self.assertEqual(sub_b.id, n.items[1].id) self.assertEqual(sub_c.id, n.items[2].id) self.assertEqual(sub_d.id, n.items[3].id) self.assertEqual(sub_e.id, n.items[4].id) self.assertEqual(sub_f.id, n.items[5].id) n = node.List() sub_a = n.add('a', sort=3) sub_ba = sub_a.add('ba', sort=3) sub_aa = sub_a.add('aa', sort=2) sub_b = n.add('b', sort=4) sub_bd = sub_b.add('bd', sort=4) sub_bc = sub_b.add('bc', sort=3) n.sort_items() self.assertEqual(sub_a.id, n.items[0].id) self.assertEqual(sub_aa.id, n.items[1].id) self.assertEqual(sub_ba.id, n.items[2].id) self.assertEqual(sub_b.id, n.items[3].id) self.assertEqual(sub_bc.id, n.items[4].id) self.assertEqual(sub_bd.id, n.items[5].id) n = node.List() time_1 = n.add('test1') time_2 = n.add('test2') time_3 = n.add('test3') n.sort_items(key=attrgetter('timestamps.created'), reverse=True) self.assertEqual(time_3.id, n.items[0].id) self.assertEqual(time_2.id, n.items[1].id) self.assertEqual(time_1.id, n.items[2].id)
def test_indent(self): n = node.List() TEXT = 'Test' clean_node(n) sub_a = node.ListItem() clean_node(sub_a) sub_b = n.add(TEXT) clean_node(sub_b) with self.assertRaises(exception.InvalidException): sub_a.add(sub_b) sub_c = sub_b.add(TEXT) self.assertIsInstance(sub_c, node.ListItem) clean_node(sub_b) sub_a.indent(sub_b) self.assertFalse(sub_b.dirty) clean_node(sub_b) sub_a.dedent(sub_b) self.assertFalse(sub_b.dirty) clean_node(sub_c) sub_b.dedent(sub_c) self.assertTrue(sub_c.dirty)
def test_fields(self): n = node.List() TEXT = 'Text' clean_node(n) n.add('Text') self.assertTrue(n.dirty) self.assertEqual(u'☐ %s' % TEXT, n.text)
def test_fields(self): n = node.List() TEXT = 'Text' clean_node(n) sub_a = n.add(TEXT, sort=1) sub_b = n.add(TEXT, True, sort=2) self.assertTrue(n.dirty) self.assertEqual([sub_b], n.checked) self.assertEqual([sub_a], n.unchecked)
def test_str(self): n = node.List() TITLE = 'Title' n.title = TITLE sub_a = n.add('a', sort=0) sub_b = n.add('b', sort=0) sub_c = n.add('c', sort=1) sub_d = n.add('d', sort=2) sub_e = n.add('e', sort=3) sub_f = n.add('f', sort=4) sub_g = n.add('g', sort=node.NewListItemPlacementValue.Bottom) sub_c.indent(sub_d) sub_f.indent(sub_e) self.assertEqual('%s\n☐ f\n ☐ e\n☐ c\n ☐ d\n☐ a\n☐ b\n☐ g' % TITLE, str(n)) self.assertEqual('☐ f\n ☐ e\n☐ c\n ☐ d\n☐ a\n☐ b\n☐ g', n.text)
def test_dirty(self): n = node.List() clean_node(n) n.add('') self.assertTrue(n.dirty)