コード例 #1
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #2
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    def test_self_remove_if_possible(self):
        node1 = DirectoryNode("", None)
        node2 = DirectoryNode("path_part2", node1)
        node1.children[node2.path_part] = node2
        node3 = DirectoryNode("path_part3", node2)
        node2.children[node3.path_part] = node3

        node3.self_remove_if_possible()
        assert len(node1.children) == 0
コード例 #3
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #4
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #5
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #6
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #7
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #8
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_remove_waiting_node_waiting_on_itself(self):
     node = DirectoryNode("path_part", None)
     node.lock()
     node.add_waiting_node(node)
     assert node in node.waiting_nodes
     assert node is node.waiting_for_node
     node.remove_waiting_node()
     assert node not in node.waiting_nodes
     assert node.waiting_for_node is None
コード例 #9
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_remove_waiting_node_waiting_on_another_node(self):
     node1 = DirectoryNode("path_part1", None)
     node2 = DirectoryNode("path_part2", node1)
     node2.lock(node1)
     node2.add_waiting_node(node2)
     assert node2 in node1.waiting_nodes
     assert node1 is node2.waiting_for_node
     node2.remove_waiting_node()
     assert node2 not in node1.waiting_nodes
     assert node2.waiting_for_node is None
コード例 #10
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_unlock_locked_by_itself(self):
     node = DirectoryNode("path_part", "parent")
     child = FakeDirectoryNode()
     node.children["child"] = child
     node.lock()
     node.unlock()
     assert child.unlocker is node
コード例 #11
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_unlock_locked_by_another_node(self):
     node = DirectoryNode("path_part", "parent")
     child = FakeDirectoryNode()
     node.children["child"] = child
     node.lock("lock_owner")
     node.unlock()
     assert child.unlocker is None
コード例 #12
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #13
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_set_prior_waiting_on_itself(self):
     node = DirectoryNode("path_part", None)
     node.lock()
     node.waiting_nodes.append("another task")
     node.add_waiting_node(node)
     assert node in node.waiting_nodes
     assert node is node.waiting_nodes[1]
     assert node is node.waiting_for_node
     node.set_prior()
     assert node in node.waiting_nodes
     assert node is node.waiting_nodes[0]
     assert node is node.waiting_for_node
コード例 #14
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_set_prior_waiting_on_another_node(self):
     node1 = DirectoryNode("path_part1", None)
     node2 = DirectoryNode("path_part2", node1)
     node2.lock(node1)
     node1.waiting_nodes.append("another task")
     node2.add_waiting_node(node2)
     assert node2 in node1.waiting_nodes
     assert node2 is node1.waiting_nodes[1]
     assert node1 is node2.waiting_for_node
     node2.set_prior()
     assert node2 in node1.waiting_nodes
     assert node2 is node1.waiting_nodes[0]
     assert node1 is node2.waiting_for_node
コード例 #15
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    def test_add_waiting_node_to_this_node_prior(self):
        node = DirectoryNode("path_part", None)
        node.lock()

        node2 = DirectoryNode("path_part2", node)
        node.add_waiting_node(node2)

        assert node2 in node.waiting_nodes

        node4 = DirectoryNode("path_part4", node)
        node.add_waiting_node(node4, prior_node=True)

        assert node4 in node.waiting_nodes
        assert node4 is node.waiting_nodes[0]
コード例 #16
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    def test_add_waiting_node_to_this_node_not_prior(self):
        node = DirectoryNode("path_part", None)
        node.lock()

        node2 = DirectoryNode("path_part2", node)
        node.add_waiting_node(node2)

        assert node2 in node.waiting_nodes

        node3 = DirectoryNode("path_part3", node)
        node.add_waiting_node(node3, prior_node=False)

        assert node3 in node.waiting_nodes
        assert node3 is node.waiting_nodes[-1]
コード例 #17
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    def test_add_waiting_node_to_another_node_prior(self):
        node = DirectoryNode("path_part", None)
        fake_node = FakeDirectoryNode()
        node.lock(fake_node)

        node2 = DirectoryNode("path_part2", node)
        node.add_waiting_node(node2)

        assert (node2, False,) in fake_node.waiting_nodes

        node3 = DirectoryNode("path_part3", node)
        node.add_waiting_node(node3, prior_node=True)

        assert (node3, True,) in fake_node.waiting_nodes
        assert (node3, True,) == fake_node.waiting_nodes[-1]
コード例 #18
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #19
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    def test_trigger_with_itself_waiting(self):
        node = DirectoryNode("path_part", "parent")
        node.waiting_nodes.append(node)
        fake_node = FakeNodeForAbstractTest()
        node.waiting_task = "task"
        node.waiting_for_node = self
        node.waiting_task_callback = fake_node.callback
        node.trigger_waiting_task()

        assert node.waiting_task_callback is None
        assert node.waiting_task is None
        assert node.waiting_for_node is None
        assert not fake_node.cancel
        assert fake_node.release_aquired_lock
コード例 #20
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
    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
コード例 #21
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 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)
コード例 #22
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_getinsert_empty_path_and_exist(self):
     node = DirectoryNode("", None)
     assert node.get_or_insert_node("") is node
コード例 #23
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_increment_children_locked_count_with_unlocked_child(self):
     node = DirectoryNode("path_part", "parent")
     node.children["child"] = "child"
     assert node.has_children_unlocked()
     node.increment_children_locked_count()
     assert not node.has_children_unlocked()
コード例 #24
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_traverse_do_not_explore_self(self):
     node = DirectoryNode("", None)
     node_list = list(node.traverse(explore=lambda x: False))
     assert len(node_list) == 0
コード例 #25
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_set_prior_no_waiting(self):
     node = DirectoryNode("path_part", None)
     node.set_prior()
コード例 #26
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_trigger_with_no_waiting_nodes(self):
     node = DirectoryNode("path_part", "parent")
     node.trigger_waiting_task()
コード例 #27
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_trigger_with_other_node_waiting(self):
     node = DirectoryNode("path_part", "parent")
     fake_node = FakeDirectoryNode()
     node.waiting_nodes.append(fake_node)
     node.trigger_waiting_nodes()
     assert fake_node.triggered
コード例 #28
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 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)
コード例 #29
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_remove_waiting_node_no_waiting(self):
     node = DirectoryNode("path_part", None)
     node.remove_waiting_node()
コード例 #30
0
ファイル: index_node_test.py プロジェクト: Bajoo/client-pc
 def test_traverse_empty_tree(self):
     node = DirectoryNode("", None)
     node_list = list(node.traverse())
     assert len(node_list) == 1
     assert node in node_list