← Về thư mục
scripts/test_check_v3_10_134_write_scope.py
- CleanRepoTest · class · L20-L23 — class CleanRepoTest(unittest.TestCase)
- test_clean_repo_passes · method · L21-L23 — def test_clean_repo_passes(self): # Baseline: the real repo state must pass (0 errors).
- MutationTest · class · L26-L118 — class MutationTest(unittest.TestCase)
- setUp · method · L29-L35 — def setUp(self): # snapshot the real loaders to restore after each mutation
- tearDown · method · L37-L42 — def tearDown(self)
- _assert_fails · method · L44-L49 — def _assert_fails(self, needle=None)
- test_I1_roster_size_drift_fails · method · L51-L54 — def test_I1_roster_size_drift_fails(self): # Drop one Bucket A agent from the roster -> size != 23.
- test_I2_manifest_missing_key_fails · method · L56-L61 — def test_I2_manifest_missing_key_fails(self): # A real agent on disk has no manifest entry -> fail-open risk.
- test_I2_manifest_typo_key_fails · method · L63-L67 — def test_I2_manifest_typo_key_fails(self): # A manifest key that matches no on-disk name (rename/typo).
- test_I2_agent_renamed_on_disk_fails · method · L69-L76 — def test_I2_agent_renamed_on_disk_fails(self): # An agent file's frontmatter name drifts away from its manifest key.
- fake_name · function · L71-L74 — def fake_name(rel)
- test_I3_bcd_leak_into_manifest_fails · method · L78-L84 — def test_I3_bcd_leak_into_manifest_fails(self): # A Bucket B agent's name (report_compiler_agent) appears as a manifest key.
- test_I4_empty_globs_fails · method · L86-L93 — def test_I4_empty_globs_fails(self)
- test_I4_wrong_bucket_fails · method · L95-L102 — def test_I4_wrong_bucket_fails(self)
- test_I5_undeclared_agent_on_disk_fails · method · L104-L111 — def test_I5_undeclared_agent_on_disk_fails(self): # A real agent file dropped from BOTH rosters must be caught by the filesystem # exhaustiveness glob (NON-vacuous guard): the hook would fail OPEN for it.
- test_I5_stale_roster_entry_fails · method · L113-L118 — def test_I5_stale_roster_entry_fails(self): # A roster entry pointing at a non-existent file is a stale entry.
- I5DepthAndSymlinkTest · class · L121-L247 — class I5DepthAndSymlinkTest(unittest.TestCase)
- setUp · method · L128-L137 — def setUp(self)
- tearDown · method · L139-L146 — def tearDown(self)
- _write_agent · method · L148-L152 — def _write_agent(self, rel, name)
- _stub_loaders_to · method · L154-L161 — def _stub_loaders_to(self, a_files, bcd_files, manifest_keys): # Point every non-I5 invariant at consistent synthetic data so ONLY I5 can react.
- test_root_agents_materialized_copy_not_flagged · method · L163-L176 — def test_root_agents_materialized_copy_not_flagged(self): # #413: plugin-root agents/ holds REAL byte-identical copies (relative # symlinks broke Windows checkouts / zip installs). I5 maps a root # agents/ file to its deep-research/agents/ source BY NAME and # must not report it as undeclared — byte-equality with that source is # check_agents_mirror_sync.py's invariant, not I5's.
- test_root_agents_copy_without_rostered_source_is_flagged · method · L178-L188 — def test_root_agents_copy_without_rostered_source_is_flagged(self): # The name-mapping must not become a blanket allowlist: a file dropped # into root agents/ whose name maps to NO rostered deep-research # source is still the fail-open case I5 exists to catch.
- test_root_agents_copy_of_non_deep_research_source_fails_closed · method · L190-L204 — def test_root_agents_copy_of_non_deep_research_source_fails_closed(self): # The by-name mapping points ONLY at deep-research/agents/ — it must # not shadow-match a same-named rostered agent living elsewhere. A # mirror of e.g. academic-paper/agents/y_agent.md maps to the # (unrostered) deep-research path and is flagged: fail-CLOSED, which # is the documented lockstep-edit prompt, never a silent pass.
- test_nested_dir_under_root_agents_is_not_remapped · method · L206-L218 — def test_nested_dir_under_root_agents_is_not_remapped(self): # codex review (#413 round, P2): the mirror remap applies ONLY to # DIRECT children of root agents/. A nested agents/sub/agents/x.md # whose NAME collides with a rostered deep-research agent must still # be flagged — remapping it would reopen the fail-open case the # recursive glob exists to catch.
- test_root_agents_symlink_aggregate_not_flagged · method · L220-L235 — def test_root_agents_symlink_aggregate_not_flagged(self): # Legacy/transition pin (pre-#413 file kind): a symlink in root # agents/ maps back the same way and must not be flagged.
- test_nested_agents_dir_undeclared_is_caught · method · L237-L247 — def test_nested_agents_dir_undeclared_is_caught(self): # A genuinely new standalone agent file nested two levels deep, absent from the # roster, MUST be flagged — the one-level glob would have silently missed it.