diff options
Diffstat (limited to 'test/test_tree.py')
-rw-r--r-- | test/test_tree.py | 131 |
1 files changed, 86 insertions, 45 deletions
diff --git a/test/test_tree.py b/test/test_tree.py index ea5af81..58a8ba9 100644 --- a/test/test_tree.py +++ b/test/test_tree.py @@ -23,12 +23,14 @@ squeleton generated by /home/syt/bin/py2tests on Jan 20 at 10:43:25 from logilab.common.testlib import TestCase, unittest_main from logilab.common.tree import * -tree = ('root', ( - ('child_1_1', ( - ('child_2_1', ()), ('child_2_2', ( - ('child_3_1', ()), - )))), - ('child_1_2', (('child_2_3', ()),)))) +tree = ( + "root", + ( + ("child_1_1", (("child_2_1", ()), ("child_2_2", (("child_3_1", ()),)))), + ("child_1_2", (("child_2_3", ()),)), + ), +) + def make_tree(tuple): n = Node(tuple[0]) @@ -36,123 +38,155 @@ def make_tree(tuple): n.append(make_tree(child)) return n + class Node_ClassTest(TestCase): """ a basic tree node, caracterised by an id""" + def setUp(self): """ called before each test from this class """ self.o = make_tree(tree) - def test_flatten(self): result = [r.id for r in self.o.flatten()] - expected = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3'] + expected = [ + "root", + "child_1_1", + "child_2_1", + "child_2_2", + "child_3_1", + "child_1_2", + "child_2_3", + ] self.assertListEqual(result, expected) def test_flatten_with_outlist(self): resultnodes = [] self.o.flatten(resultnodes) result = [r.id for r in resultnodes] - expected = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3'] + expected = [ + "root", + "child_1_1", + "child_2_1", + "child_2_2", + "child_3_1", + "child_1_2", + "child_2_3", + ] self.assertListEqual(result, expected) - def test_known_values_remove(self): """ remove a child node """ - self.o.remove(self.o.get_node_by_id('child_1_1')) - self.assertRaises(NodeNotFound, self.o.get_node_by_id, 'child_1_1') + self.o.remove(self.o.get_node_by_id("child_1_1")) + self.assertRaises(NodeNotFound, self.o.get_node_by_id, "child_1_1") def test_known_values_replace(self): """ replace a child node with another """ - self.o.replace(self.o.get_node_by_id('child_1_1'), Node('hoho')) - self.assertRaises(NodeNotFound, self.o.get_node_by_id, 'child_1_1') - self.assertEqual(self.o.get_node_by_id('hoho'), self.o.children[0]) + self.o.replace(self.o.get_node_by_id("child_1_1"), Node("hoho")) + self.assertRaises(NodeNotFound, self.o.get_node_by_id, "child_1_1") + self.assertEqual(self.o.get_node_by_id("hoho"), self.o.children[0]) def test_known_values_get_sibling(self): """ return the sibling node that has given id """ - self.assertEqual(self.o.children[0].get_sibling('child_1_2'), self.o.children[1], None) + self.assertEqual(self.o.children[0].get_sibling("child_1_2"), self.o.children[1], None) def test_raise_get_sibling_NodeNotFound(self): - self.assertRaises(NodeNotFound, self.o.children[0].get_sibling, 'houhou') + self.assertRaises(NodeNotFound, self.o.children[0].get_sibling, "houhou") def test_known_values_get_node_by_id(self): """ return node in whole hierarchy that has given id """ - self.assertEqual(self.o.get_node_by_id('child_1_1'), self.o.children[0]) + self.assertEqual(self.o.get_node_by_id("child_1_1"), self.o.children[0]) def test_raise_get_node_by_id_NodeNotFound(self): - self.assertRaises(NodeNotFound, self.o.get_node_by_id, 'houhou') + self.assertRaises(NodeNotFound, self.o.get_node_by_id, "houhou") def test_known_values_get_child_by_id(self): """ return child of given id """ - self.assertEqual(self.o.get_child_by_id('child_2_1', recurse=1), self.o.children[0].children[0]) + self.assertEqual( + self.o.get_child_by_id("child_2_1", recurse=1), self.o.children[0].children[0] + ) def test_raise_get_child_by_id_NodeNotFound(self): - self.assertRaises(NodeNotFound, self.o.get_child_by_id, nid='child_2_1') - self.assertRaises(NodeNotFound, self.o.get_child_by_id, 'houhou') + self.assertRaises(NodeNotFound, self.o.get_child_by_id, nid="child_2_1") + self.assertRaises(NodeNotFound, self.o.get_child_by_id, "houhou") def test_known_values_get_child_by_path(self): """ return child of given path (path is a list of ids) """ - self.assertEqual(self.o.get_child_by_path(['root', 'child_1_1', 'child_2_1']), self.o.children[0].children[0]) + self.assertEqual( + self.o.get_child_by_path(["root", "child_1_1", "child_2_1"]), + self.o.children[0].children[0], + ) def test_raise_get_child_by_path_NodeNotFound(self): - self.assertRaises(NodeNotFound, self.o.get_child_by_path, ['child_1_1', 'child_2_11']) + self.assertRaises(NodeNotFound, self.o.get_child_by_path, ["child_1_1", "child_2_11"]) def test_known_values_depth_down(self): """ return depth of this node in the tree """ self.assertEqual(self.o.depth_down(), 4) - self.assertEqual(self.o.get_child_by_id('child_2_1', True).depth_down(), 1) + self.assertEqual(self.o.get_child_by_id("child_2_1", True).depth_down(), 1) def test_known_values_depth(self): """ return depth of this node in the tree """ self.assertEqual(self.o.depth(), 0) - self.assertEqual(self.o.get_child_by_id('child_2_1', True).depth(), 2) + self.assertEqual(self.o.get_child_by_id("child_2_1", True).depth(), 2) def test_known_values_width(self): """ return depth of this node in the tree """ self.assertEqual(self.o.width(), 3) - self.assertEqual(self.o.get_child_by_id('child_2_1', True).width(), 1) + self.assertEqual(self.o.get_child_by_id("child_2_1", True).width(), 1) def test_known_values_root(self): """ return the root node of the tree """ - self.assertEqual(self.o.get_child_by_id('child_2_1', True).root(), self.o) + self.assertEqual(self.o.get_child_by_id("child_2_1", True).root(), self.o) def test_known_values_leaves(self): """ return a list with all the leaf nodes descendant from this task """ - self.assertEqual(self.o.leaves(), [self.o.get_child_by_id('child_2_1', True), - self.o.get_child_by_id('child_3_1', True), - self.o.get_child_by_id('child_2_3', True)]) + self.assertEqual( + self.o.leaves(), + [ + self.o.get_child_by_id("child_2_1", True), + self.o.get_child_by_id("child_3_1", True), + self.o.get_child_by_id("child_2_3", True), + ], + ) def test_known_values_lineage(self): - c31 = self.o.get_child_by_id('child_3_1', True) - self.assertEqual(c31.lineage(), [self.o.get_child_by_id('child_3_1', True), - self.o.get_child_by_id('child_2_2', True), - self.o.get_child_by_id('child_1_1', True), - self.o]) + c31 = self.o.get_child_by_id("child_3_1", True) + self.assertEqual( + c31.lineage(), + [ + self.o.get_child_by_id("child_3_1", True), + self.o.get_child_by_id("child_2_2", True), + self.o.get_child_by_id("child_1_1", True), + self.o, + ], + ) class post_order_list_FunctionTest(TestCase): """""" + def setUp(self): """ called before each test from this class """ self.o = make_tree(tree) @@ -162,7 +196,7 @@ class post_order_list_FunctionTest(TestCase): create a list with tree nodes for which the <filter> function returned true in a post order foashion """ - L = ['child_2_1', 'child_3_1', 'child_2_2', 'child_1_1', 'child_2_3', 'child_1_2', 'root'] + L = ["child_2_1", "child_3_1", "child_2_2", "child_1_1", "child_2_3", "child_1_2", "root"] l = [n.id for n in post_order_list(self.o)] self.assertEqual(l, L, l) @@ -171,23 +205,26 @@ class post_order_list_FunctionTest(TestCase): create a list with tree nodes for which the <filter> function returned true in a post order foashion """ + def filter(node): - if node.id == 'child_2_2': + if node.id == "child_2_2": return 0 return 1 - L = ['child_2_1', 'child_1_1', 'child_2_3', 'child_1_2', 'root'] + + L = ["child_2_1", "child_1_1", "child_2_3", "child_1_2", "root"] l = [n.id for n in post_order_list(self.o, filter)] self.assertEqual(l, L, l) class PostfixedDepthFirstIterator_ClassTest(TestCase): """""" + def setUp(self): """ called before each test from this class """ self.o = make_tree(tree) def test_known_values_next(self): - L = ['child_2_1', 'child_3_1', 'child_2_2', 'child_1_1', 'child_2_3', 'child_1_2', 'root'] + L = ["child_2_1", "child_3_1", "child_2_2", "child_1_1", "child_2_3", "child_1_2", "root"] iter = PostfixedDepthFirstIterator(self.o) o = next(iter) i = 0 @@ -199,6 +236,7 @@ class PostfixedDepthFirstIterator_ClassTest(TestCase): class pre_order_list_FunctionTest(TestCase): """""" + def setUp(self): """ called before each test from this class """ self.o = make_tree(tree) @@ -208,7 +246,7 @@ class pre_order_list_FunctionTest(TestCase): create a list with tree nodes for which the <filter> function returned true in a pre order fashion """ - L = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3'] + L = ["root", "child_1_1", "child_2_1", "child_2_2", "child_3_1", "child_1_2", "child_2_3"] l = [n.id for n in pre_order_list(self.o)] self.assertEqual(l, L, l) @@ -217,23 +255,26 @@ class pre_order_list_FunctionTest(TestCase): create a list with tree nodes for which the <filter> function returned true in a pre order fashion """ + def filter(node): - if node.id == 'child_2_2': + if node.id == "child_2_2": return 0 return 1 - L = ['root', 'child_1_1', 'child_2_1', 'child_1_2', 'child_2_3'] + + L = ["root", "child_1_1", "child_2_1", "child_1_2", "child_2_3"] l = [n.id for n in pre_order_list(self.o, filter)] self.assertEqual(l, L, l) class PrefixedDepthFirstIterator_ClassTest(TestCase): """""" + def setUp(self): """ called before each test from this class """ self.o = make_tree(tree) def test_known_values_next(self): - L = ['root', 'child_1_1', 'child_2_1', 'child_2_2', 'child_3_1', 'child_1_2', 'child_2_3'] + L = ["root", "child_1_1", "child_2_1", "child_2_2", "child_3_1", "child_1_2", "child_2_3"] iter = PrefixedDepthFirstIterator(self.o) o = next(iter) i = 0 @@ -243,5 +284,5 @@ class PrefixedDepthFirstIterator_ClassTest(TestCase): i += 1 -if __name__ == '__main__': +if __name__ == "__main__": unittest_main() |