Orchestrata Ultimate › Tests › Reference › scripts › test_force_ast_toolkit
Tests reference — tests/scripts/test_force_ast_toolkit.py
Module of tests/scripts, split out because the directory page would be too large.
Prose pending.
tests/scripts/test_force_ast_toolkit.py
source · 17 tests · 352 lines
Tests for .claude/hooks/force-ast-toolkit.sh — the PreToolUse(Bash|Read)
| Kind | Name | Line | Description |
|---|---|---|---|
| function | test_text_scraping_this_repos_python_is_denied |
101 | |
| function | test_reading_this_repos_python_directly_is_denied |
105 | The Read tool is the other half of the mandate — and the shape I used |
| function | test_the_denial_names_the_offending_path_and_the_replacement |
112 | A deny that does not say what to run instead teaches nothing — the |
| function | test_legitimate_work_is_not_blocked |
146 | |
| function | test_a_text_tool_reading_another_stage_output_is_not_scraping |
167 | head/tail after a pipe read the PREVIOUS STAGE'S OUTPUT, not the |
| function | test_a_newline_separates_commands_as_surely_as_a_semicolon |
181 | A multi-line script is many commands, not one. |
| function | test_a_command_string_carried_as_data_is_not_an_invocation |
200 | A script that FEEDS a command to something else — a hook corpus, a |
| function | test_reading_a_non_python_artifact_is_allowed |
218 | Ad-hoc Read is FOR non-Python artifacts — the mandate says so. |
| function | test_writes_are_never_touched |
224 | The mandate governs READING structure and content. Edit/Write are how |
| function | test_another_checkouts_python_is_not_this_repos_business |
263 | The toolkit indexes THIS tree. Denying a read of another project's |
| function | test_another_checkouts_python_is_readable |
278 | |
| function | test_a_cd_into_this_repo_still_enforces_the_mandate |
284 | Scoping by cd target must not become an escape hatch: naming this |
| function | test_an_unreadable_payload_is_denied_not_allowed |
305 | Four PreToolUse guards failed OPEN on 2026-08-08 because jq was absent: |
| function | test_a_payload_without_the_field_still_allows |
312 | Fail-closed applies to UNREADABLE input, not to a well-formed payload |
| function | test_the_hook_does_not_depend_on_jq |
318 | jq is absent on this machine; a guard that shells out to it fails open. |
| function | test_hook_is_registered_on_both_read_surfaces |
331 | |
| function | test_the_advisory_hint_it_replaced_is_gone |
345 | Leaving the superseded hint registered would mean two mechanisms for one |