1 #!/usr/bin/env python3 |
1 #!/usr/bin/env python3 |
2 |
2 |
3 import sys |
3 import sys |
4 sys.path.append('..') |
4 sys.path.insert(0, '..') |
5 |
5 |
6 from tuikit.treeview import * |
6 from tuikit.treeview import * |
7 import unittest |
7 import unittest |
8 |
8 |
9 |
9 |
10 class TestTreeView(unittest.TestCase): |
10 class TestTreeView(unittest.TestCase): |
11 def test_treemodel(self): |
11 def setUp(self): |
12 '''Build tree model, iterate through the tree, test result.''' |
12 """Build tree model |
13 # build tree model |
13 |
14 # root |
14 # root |
15 # ├ a |
15 # ├ a |
16 # │ ├ c |
16 # │ ├ c |
17 # │ └ d |
17 # │ └ d |
18 # │ ├ e |
18 # │ ├ e |
19 # │ │ └ g |
19 # │ │ └ g |
20 # │ └ f |
20 # │ └ f |
21 # │ └ h |
21 # │ └ h |
22 # └ b |
22 # └ b |
23 model = TreeModel() |
23 |
24 model.add('/', ['a', 'b']) |
24 """ |
25 model.add('/a', ['c', 'd']) |
25 self.model = TreeModel() |
26 model.add((0,1), ['e', 'f']) |
26 self.model.add('/', ['a', 'b']) |
27 model.add('/0/1/0', 'g') |
27 self.model.add('/a', [TreeNode('c'), TreeNode('d')]) |
28 model.add('/a/d/f', 'h') |
28 self.model.add((0,1), ['e', TreeNode('f')]) |
29 |
29 self.model.add([0,1,0], 'g') |
|
30 self.model.add('/a/d/f', TreeNode('h')) |
|
31 |
|
32 def test_treeiter(self): |
|
33 """Iterate through the tree, test result.""" |
30 res = '' |
34 res = '' |
31 for l, i, c, n in model: |
35 for l, i, c, n in self.model: |
32 res += str(l) + str(i) + str(c) + n.name |
36 res += str(l) + str(i) + str(c) + n.name |
33 |
37 |
34 self.assertEqual(res, '112a212c222d312e411g322f411h122b') |
38 self.assertEqual(res, '112a212c222d312e411g322f411h122b') |
35 |
39 |
|
40 def test_treemodel_find(self): |
|
41 # good path |
|
42 node = self.model.find('/a/d/f/h') |
|
43 self.assertEqual(node.name, 'h') |
|
44 self.assertEqual(node.path, '/a/d/f/h') |
|
45 # bad path |
|
46 self.assertRaises(ValueError, self.model.find, '/a/b/c') |
|
47 self.assertRaises(IndexError, self.model.find, [0,1,3]) |
36 |
48 |
37 if __name__ == '__main__': |
49 if __name__ == '__main__': |
38 unittest.main() |
50 unittest.main() |
39 |
51 |