← Về thư mục
tests/_contract/office.py
- shared_file_problems · function · L57-L75 — def shared_file_problems(skills_dir: Path = SKILLS_DIR) -> list[str]
- _tree_digest · function · L78-L86 — def _tree_digest(office_dir: Path) -> str
- identical_tree_problems · function · L89-L104 — def identical_tree_problems(skills_dir: Path = SKILLS_DIR) -> list[str]
- office_test_case · function · L107-L294 — def office_test_case(skill_root: Path) -> type[unittest.TestCase]
- load_helpers · function · L111-L117 — def load_helpers(): #
office/ puts helpers and validators at the top level -- see the # from helpers import ... in validate.py -- so office/ itself goes on # the path. Safe because this repo runs one skill per process.
- OfficeSharedTreeTests · class · L119-L291 — class OfficeSharedTreeTests(unittest.TestCase)
- setUp · method · L122-L123 — def setUp(self) -> None
- test_safe_extract_unpacks_an_ordinary_package · method · L127-L143 — def test_safe_extract_unpacks_an_ordinary_package(self) -> None
- test_safe_extract_refuses_a_traversal_entry · method · L145-L157 — def test_safe_extract_refuses_a_traversal_entry(self) -> None
- test_safe_extract_refuses_a_symlink_entry · method · L159-L172 — def test_safe_extract_refuses_a_symlink_entry(self) -> None
- test_opc_target_resolves_relative_and_absolute_part_names · method · L176-L193 — def test_opc_target_resolves_relative_and_absolute_part_names(self) -> None
- test_opc_target_ignores_external_and_scheme_targets · method · L195-L201 — def test_opc_target_ignores_external_and_scheme_targets(self) -> None
- test_opc_target_refuses_targets_that_escape_the_package · method · L203-L211 — def test_opc_target_refuses_targets_that_escape_the_package(self) -> None
- test_a_dot_target_resolves_to_its_own_directory · method · L213-L217 — def test_a_dot_target_resolves_to_its_own_directory(self) -> None: # normpath collapses it rather than treating it as an error.
- test_rendered_text_honours_xml_space_preserve · method · L221-L225 — def test_rendered_text_honours_xml_space_preserve(self) -> None
- test_part_text_survives_undecodable_bytes · method · L227-L231 — def test_part_text_survives_undecodable_bytes(self) -> None: # surrogateescape, not a crash: a corrupt part must still be # reportable rather than taking the whole validation run down.
- test_rezip_stores_content_types_first_and_uncompressed · method · L235-L254 — def test_rezip_stores_content_types_first_and_uncompressed(self) -> None
- test_rezip_leaves_no_temporary_file_behind · method · L256-L268 — def test_rezip_leaves_no_temporary_file_behind(self) -> None
- test_ooxml_family_covers_this_skill · method · L272-L275 — def test_ooxml_family_covers_this_skill(self) -> None
- test_every_validator_schema_path_exists · method · L277-L291 — def test_every_validator_schema_path_exists(self) -> None