← Về thư mục
tests/test_host_workspace_service.py
- _dispatcher · function · L12-L17 — def _dispatcher(tmp_path: Path, frame_id: str | None = "frame-1") -> HostDispatcher
- test_workspace_follows_frame_id_assigned_after_construction · function · L20-L31 — def test_workspace_follows_frame_id_assigned_after_construction(tmp_path)
- test_dispatcher_envelope_calls_registered_file_tool_class · function · L34-L50 — def test_dispatcher_envelope_calls_registered_file_tool_class(tmp_path, monkeypatch)
- execute · function · L40-L42 — def execute(_self, context, arguments)
- test_workspace_service_keeps_legacy_operation_facade · function · L53-L63 — def test_workspace_service_keeps_legacy_operation_facade(tmp_path)
- test_resolve_confines_parent_absolute_and_symlink_paths · function · L66-L87 — def test_resolve_confines_parent_absolute_and_symlink_paths(tmp_path)
- test_read_file_preserves_text_window_and_binary_shapes · function · L90-L111 — def test_read_file_preserves_text_window_and_binary_shapes(tmp_path)
- test_edit_file_keeps_single_key_errors_and_replace_all_behavior · function · L114-L143 — def test_edit_file_keeps_single_key_errors_and_replace_all_behavior(tmp_path)
- test_glob_and_grep_filter_secret_files_but_keep_normal_results · function · L146-L159 — def test_glob_and_grep_filter_secret_files_but_keep_normal_results(tmp_path)
- test_list_dir_missing_directory_keeps_soft_fail_shape · function · L162-L167 — def test_list_dir_missing_directory_keeps_soft_fail_shape(tmp_path)
- test_grep_include_filters_recursively_like_the_unfiltered_search · function · L170-L193 — def test_grep_include_filters_recursively_like_the_unfiltered_search(tmp_path)
- test_glob_reports_the_number_it_returned_not_the_number_it_found · function · L196-L223 — def test_glob_reports_the_number_it_returned_not_the_number_it_found(tmp_path)
- test_the_workspace_is_resolved_once_per_identity_not_once_per_call · function · L226-L272 — def test_the_workspace_is_resolved_once_per_identity_not_once_per_call(tmp_path)
- counting_mkdir · function · L249-L254 — def counting_mkdir(self, args, *kwargs): #
parents=True recurses into each missing parent, so count only the # workspace directory itself.
- test_secret_denylist_matches_credential_directories_not_only_basenames · function · L275-L315 — def test_secret_denylist_matches_credential_directories_not_only_basenames()
- test_secret_denylist_does_not_widen_into_ordinary_science_paths · function · L318-L341 — def test_secret_denylist_does_not_widen_into_ordinary_science_paths()
- test_unicode_filesystem_case_equivalents_are_denied_end_to_end · function · L344-L359 — def test_unicode_filesystem_case_equivalents_are_denied_end_to_end(tmp_path)
- test_unattended_tier_is_wider_than_the_interactive_denylist · function · L362-L380 — def test_unattended_tier_is_wider_than_the_interactive_denylist()
- test_a_symlink_cannot_walk_a_secret_past_the_raw_path_pre_gate · function · L383-L417 — def test_a_symlink_cannot_walk_a_secret_past_the_raw_path_pre_gate(tmp_path)
- test_symlink_chain_cannot_leave_workspace_and_reenter_through_secret_alias · function · L420-L436 — def test_symlink_chain_cannot_leave_workspace_and_reenter_through_secret_alias( tmp_path, )
- test_alias_inspection_does_not_treat_scandir_failure_as_no_alias · function · L439-L462 — def test_alias_inspection_does_not_treat_scandir_failure_as_no_alias( tmp_path, monkeypatch )
- unreadable · function · L453-L456 — def unreadable(directory)
- test_nested_sibling_secret_alias_marks_the_canonical_tree · function · L465-L482 — def test_nested_sibling_secret_alias_marks_the_canonical_tree(tmp_path)
- test_secret_basename_alias_marks_the_same_canonical_file · function · L485-L497 — def test_secret_basename_alias_marks_the_same_canonical_file(tmp_path)
- test_secret_root_descendant_hardlink_is_denied_by_inode_identity · function · L500-L512 — def test_secret_root_descendant_hardlink_is_denied_by_inode_identity(tmp_path)
- test_external_secret_hardlink_is_denied_but_single_link_reads_still_work · function · L515-L549 — def test_external_secret_hardlink_is_denied_but_single_link_reads_still_work( tmp_path, )
- test_verified_read_rejects_final_symlink_swapped_after_parent_acquisition · function · L552-L567 — def test_verified_read_rejects_final_symlink_swapped_after_parent_acquisition( tmp_path, )
- test_write_and_edit_keep_using_the_acquired_parent_after_path_swap · function · L570-L624 — def test_write_and_edit_keep_using_the_acquired_parent_after_path_swap( tmp_path, monkeypatch )
- acquire_then_swap · function · L596-L601 — def acquire_then_swap(relative, *, create_parents=False)
- test_dangling_exact_alias_blocks_casefold_equivalent_future_write · function · L627-L636 — def test_dangling_exact_alias_blocks_casefold_equivalent_future_write(tmp_path)
- test_dangling_root_alias_blocks_unicode_equivalent_future_write · function · L639-L653 — def test_dangling_root_alias_blocks_unicode_equivalent_future_write(tmp_path)
- test_secret_sequence_alias_blocks_paths_before_write_creates_them · function · L657-L676 — def test_secret_sequence_alias_blocks_paths_before_write_creates_them( tmp_path, vault_exists )
- test_alias_inventory_is_bounded_and_truncation_fails_closed · function · L679-L713 — def test_alias_inventory_is_bounded_and_truncation_fails_closed(tmp_path, monkeypatch)
- Entry · class · L686-L691 — class Entry
- init · method · L687-L688 — def init(self, name)
- is_dir · method · L690-L691 — def is_dir(self, *, follow_symlinks=True)
- Scan · class · L693-L704 — class Scan
- enter · method · L694-L701 — def enter(self)
- entries · function · L695-L699 — def entries()
- exit · method · L703-L704 — def exit(self, *_args)
- test_symlink_parent_steps_do_not_erase_secret_directory_hops · function · L717-L738 — def test_symlink_parent_steps_do_not_erase_secret_directory_hops( tmp_path, absolute_target )
- test_a_workspace_inside_a_credential_directory_is_still_usable · function · L741-L771 — def test_a_workspace_inside_a_credential_directory_is_still_usable(tmp_path)
- test_collection_tools_filter_files_reached_by_a_secret_directory_alias · function · L774-L793 — def test_collection_tools_filter_files_reached_by_a_secret_directory_alias(tmp_path)
- test_content_search_rechecks_a_candidate_immediately_before_open · function · L796-L833 — def test_content_search_rechecks_a_candidate_immediately_before_open( tmp_path, monkeypatch )
- opener_factory · function · L811-L824 — def opener_factory()
- open_candidate · function · L814-L822 — def open_candidate(path)
- test_read_file_hard_denies_a_credential_directory_without_a_prompt · function · L836-L848 — def test_read_file_hard_denies_a_credential_directory_without_a_prompt(tmp_path)