Beispiel #1
0
    def test_traverse_only_file_node(self):
        node1 = DirectoryNode("", None)
        node2 = node1.get_or_insert_node("part1/part2/part3")
        node3 = node1.get_or_insert_node("part1/part2/part4")
        node4 = node1.get_or_insert_node("part1/part2/part5")
        node5 = node1.get_or_insert_node("part1/part6/part7")
        node6 = node1.get_or_insert_node("part8/part9")
        node7 = node1.get_or_insert_node("part10")

        node_list = list(node1.traverse_only_file_node())

        assert len(node_list) == 6
        for node in (node2, node3, node4, node5, node6, node7):
            assert node in node_list
Beispiel #2
0
    def test_traverse_only_directory_node(self):
        node1 = DirectoryNode("", None)
        node2 = node1.get_or_insert_node("part1/part2/part3")
        node5 = node1.get_or_insert_node("part1/part6/part7")
        node6 = node1.get_or_insert_node("part8/part9")

        node_list = list(node1.traverse_only_directory_node())

        assert len(node_list) == 5
        assert node1 in node_list
        assert node2.parent in node_list
        assert node2.parent.parent in node_list
        assert node5.parent in node_list
        assert node6.parent in node_list
Beispiel #3
0
    def test_traverse_only_dir_tree(self):
        node1 = DirectoryNode("", None)
        node2 = node1.get_or_insert_node("part1/part2/part3")
        node5 = node1.get_or_insert_node("part1/part6/part7")
        node6 = node1.get_or_insert_node("part8/part9")
        node8 = node1.get_or_insert_node("part11", only_directory=True)

        def collect(node):
            return isinstance(node, DirectoryNode)

        node_list = list(node1.traverse(collect=collect))
        assert len(node_list) == 6
        assert node1 in node_list
        assert node2.parent in node_list
        assert node2.parent.parent in node_list
        assert node5.parent in node_list
        assert node6.parent in node_list
        assert node8 in node_list
Beispiel #4
0
    def test_getinsert_last_two_part_not_exist_no_create(self):
        node1 = DirectoryNode("", None)
        node2 = DirectoryNode("part1", node1)
        node1.children["part1"] = node2

        sub_node = node1.get_or_insert_node(
            "part1/part2/part3/", create=False)
        assert sub_node is None
        assert len(node2.children) == 0
Beispiel #5
0
    def test_getinsert_long_path_and_exist(self):
        node1 = DirectoryNode("", None)
        node2 = DirectoryNode("part1", node1)
        node1.children["part1"] = node2
        node3 = DirectoryNode("part2", node2)
        node2.children["part2"] = node3
        node4 = DirectoryNode("part3", node3)
        node3.children["part3"] = node4

        sub_node = node1.get_or_insert_node("part1/part2/part3/")
        assert sub_node is node4
Beispiel #6
0
    def test_traverse_various_node_tree(self):
        node1 = DirectoryNode("", None)
        node2 = node1.get_or_insert_node("part1/part2/part3")
        node3 = node1.get_or_insert_node("part1/part2/part4")
        node4 = node1.get_or_insert_node("part1/part2/part5")
        node5 = node1.get_or_insert_node("part1/part6/part7")
        node6 = node1.get_or_insert_node("part8/part9")
        node7 = node1.get_or_insert_node("part10")

        def collect(node):
            return isinstance(node, FileNode)

        node_list = list(node1.traverse(collect=collect))
        assert len(node_list) == 6
        assert node2 in node_list
        assert node3 in node_list
        assert node4 in node_list
        assert node5 in node_list
        assert node6 in node_list
        assert node7 in node_list
Beispiel #7
0
    def test_getinsert_long_path_and_last_leaf_not_exist_and_no_create(self):
        node1 = DirectoryNode("", None)
        node2 = DirectoryNode("part1", node1)
        node1.children["part1"] = node2
        node3 = DirectoryNode("part2", node2)
        node2.children["part2"] = node3

        sub_node = node1.get_or_insert_node(
            "part1/part2/part3/", create=False)
        assert sub_node is None
        assert "part3" not in node3.children
Beispiel #8
0
    def test_getinsert_last_two_part_do_not_exist(self):
        node1 = DirectoryNode("", None)
        node2 = DirectoryNode("part1", node1)
        node1.children["part1"] = node2

        sub_node = node1.get_or_insert_node("part1/part2/part3/")
        assert sub_node is not None
        assert isinstance(sub_node, FileNode)
        sub_node_parent = sub_node.parent
        assert sub_node_parent is not None
        assert sub_node_parent.parent is node2
        assert "part2" in node2.children
        assert node2.children["part2"] is sub_node_parent
Beispiel #9
0
    def test_getinsert_long_path_and_last_leaf_not_exist(self):
        node1 = DirectoryNode("", None)
        node2 = DirectoryNode("part1", node1)
        node1.children["part1"] = node2
        node3 = DirectoryNode("part2", node2)
        node2.children["part2"] = node3

        sub_node = node1.get_or_insert_node("part1/part2/part3/")
        assert sub_node is not None
        assert isinstance(sub_node, FileNode)
        assert sub_node.parent is node3
        assert "part3" in node3.children
        assert node3.children["part3"] is sub_node
Beispiel #10
0
 def test_getinsert_single_path_and_not_exist_and_only_directory(self):
     node = DirectoryNode("", None)
     sub_node = node.get_or_insert_node("single", only_directory=True)
     assert sub_node is not node
     assert "single" in node.children
     assert isinstance(node.children["single"], DirectoryNode)
Beispiel #11
0
 def test_getinsert_single_path_and_exist(self):
     node = DirectoryNode("single", None)
     sub_node = node.get_or_insert_node("single")
     assert sub_node is not node
     assert "single" in node.children
     assert isinstance(node.children["single"], FileNode)
Beispiel #12
0
 def test_getinsert_empty_path_and_exist(self):
     node = DirectoryNode("", None)
     assert node.get_or_insert_node("") is node