def test_add_waiting_node_sync_nothing_wait(self): node = FileNode("part", "saver", "parent", "rel_path") fake_dir_node = FakeDirectoryNode() node.add_waiting_node(fake_dir_node) assert node.waiting_sync_node is fake_dir_node assert fake_dir_node.waiting_for_node is node
def test_remove_waiting_node_self_waiting(self): node = FileNode("part", "saver", "parent", "rel_path") node.add_waiting_node(node) node.remove_waiting_node(node) assert node.waiting_sync_node is None assert not node.self_waiting assert node.waiting_for_node is None
def test_remove_waiting_node_node_waits_for_a_sync(self): node = FileNode("part", "saver", "parent", "rel_path") fake_dir_node = FakeDirectoryNode() node.waiting_for_node = fake_dir_node node.remove_waiting_node(42) assert len(fake_dir_node.removed_nodes) == 1 assert 42 in fake_dir_node.removed_nodes
def test_set_prior_waiting_to_another_node(self): node = FileNode("part", "saver", "parent", "rel_path") fake_dir_node = FakeDirectoryNode() node.waiting_for_node = fake_dir_node node.set_prior() assert len(fake_dir_node.prior_nodes) == 1 assert node in fake_dir_node.prior_nodes
def test_unlock_not_locked(self): fake_saver = FakeIndexSaver() node = FileNode("part", fake_saver, "parent", "rel_path") node.set_hash("local", "remote") node.unlock() assert node.lock_owner is None assert node.local_md5 == "local"
def test_remove_waiting_node_sync_waiting(self): node = FileNode("part", "saver", "parent", "rel_path") fake_dir_node = FakeDirectoryNode() node.add_waiting_node(fake_dir_node) node.remove_waiting_node(fake_dir_node) assert node.waiting_sync_node is None assert not node.self_waiting assert fake_dir_node.waiting_for_node is None
def test_trigger_self_and_sync_to_trigger(self): node = FileNode("part", "saver", "parent", "rel_path") node.self_waiting = False fake_node = FakeDirectoryNode() node.waiting_sync_node = fake_node node.trigger_waiting_nodes() assert node.waiting_sync_node is None assert fake_node.triggered
def test_add_waiting_node_self_sync_wait_and_prior(self): node = FileNode("part", "saver", "parent", "rel_path") fake_dir_node = FakeDirectoryNode() node.waiting_sync_node = fake_dir_node node.add_waiting_node(node, prior_node=True) assert len(fake_dir_node.waiting_nodes) == 0 assert node.self_waiting assert node.waiting_for_node is node
def test_add_waiting_node_self_sync_wait(self): node = FileNode("part", "saver", "parent", "rel_path") fake_dir_node = FakeDirectoryNode() node.waiting_sync_node = fake_dir_node node.add_waiting_node(node) assert len(fake_dir_node.waiting_nodes) == 1 assert fake_dir_node.waiting_nodes[0] == (node, False) assert node.waiting_for_node is None
def test_set_hash(self): fake_saver = FakeIndexSaver() node = FileNode("part", fake_saver, "parent", "rel_path") assert fake_saver.triggered == 0 assert node.local_md5 is None assert node.remote_md5 is None node.set_hash("local", "remote") assert fake_saver.triggered == 1 assert node.local_md5 == "local" assert node.remote_md5 == "remote"
def test_invalidate_remote_not_locked(self): fake_saver = FakeIndexSaver() node = FileNode("part", fake_saver, "parent", "rel_path") node.set_hash("local", "remote") node.invalidate_remote() assert node.remote_md5 is None assert not node.do_invalidate_remote assert not node.is_invalidate_local() assert node.is_invalidate_remote()
def test_trigger_self_to_trigger(self): node = FileNode("part", "saver", "parent", "rel_path") node.self_waiting = True fake_task = FakeTask() node.waiting_task = fake_task node.waiting_task_callback = fake_task.callback node.waiting_for_node = self node.trigger_waiting_nodes() assert node.waiting_task is None assert node.waiting_task_callback is None assert node.waiting_for_node is None assert not node.self_waiting assert fake_task.callback_called
def test_set_prior_on_sync_sync_prior(self): node = FileNode("part", "saver", "parent", "rel_path") fake_dir_node = FakeDirectoryNode() node.add_waiting_node(node) node.add_waiting_node(fake_dir_node, prior_node=True) node.set_prior(fake_dir_node) assert len(fake_dir_node.waiting_nodes) == 1 assert fake_dir_node.waiting_nodes[0] == (node, False) assert len(fake_dir_node.removed_nodes) == 0 assert not node.self_waiting assert node.waiting_sync_node is fake_dir_node
def test_traverse_node_included(self): node = FileNode("part", "saver", "parent", "rel_path") result = list(node.traverse()) assert len(result) == 1 assert node in result
def test_set_prior_no_waiting(self): node = FileNode("part", "saver", "parent", "rel_path") node.set_prior()
def test_traverse_node_excluded(self): node = FileNode("part", "saver", "parent", "rel_path") result = list(node.traverse(collect=lambda x: False)) assert len(result) == 0
def test_is_removable1(self): node = FileNode("part", "saver", "parent", "rel_path") assert node.is_removable()
def test_is_removable2(self): fake_saver = FakeIndexSaver() node = FileNode("part", fake_saver, "parent", "rel_path") node.set_hash("local", "remote") assert not node.is_removable()
def test_add_waiting_node_self_nothing_wait(self): node = FileNode("part", "saver", "parent", "rel_path") node.add_waiting_node(node) assert node.self_waiting assert node.waiting_for_node is node
def test_invalidate_at_create(self): fake_saver = FakeIndexSaver() node = FileNode("part", fake_saver, "parent", "rel_path") assert node.is_invalidate_local() assert node.is_invalidate_remote()
def test_trigger_nothing_to_trigger(self): node = FileNode("part", "saver", "parent", "rel_path") node.trigger_waiting_nodes()
def test_is_removable4(self): node = FileNode("part", "saver", "parent", "rel_path") node.waiting_sync_node = 42 assert not node.is_removable()
def test_is_removable3(self): node = FileNode("part", "saver", "parent", "rel_path") node.self_waiting = True assert not node.is_removable()