chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
"""Static guard: the Specify CLI source must contain no agent-context lifecycle code.
|
||||
|
||||
The ``agent-context`` extension is a full opt-in and owns its own lifecycle. The
|
||||
Python codebase (``src/specify_cli/**``) must therefore not reference any of the
|
||||
removed context-section management helpers, the extension config helpers, the
|
||||
context markers, or the obsolete deprecation message.
|
||||
|
||||
Maps to contract C5 / FR-002 / FR-003 / FR-006 / SC-002 / SC-003.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
PROJECT_ROOT = Path(__file__).resolve().parents[2]
|
||||
SRC_ROOT = PROJECT_ROOT / "src" / "specify_cli"
|
||||
|
||||
FORBIDDEN_SYMBOLS = [
|
||||
"upsert_context_section",
|
||||
"remove_context_section",
|
||||
"_agent_context_extension_enabled",
|
||||
"_resolve_context_markers",
|
||||
"_resolve_context_files",
|
||||
"_resolve_context_file_values",
|
||||
"_build_context_section",
|
||||
"_AGENT_CTX_EXT_CONFIG",
|
||||
"_load_agent_context_config",
|
||||
"_save_agent_context_config",
|
||||
"_update_agent_context_config_file",
|
||||
"CONTEXT_MARKER_START",
|
||||
"CONTEXT_MARKER_END",
|
||||
"agent-context-config",
|
||||
"agent_context_config",
|
||||
"__CONTEXT_FILE__",
|
||||
"_context_file_display",
|
||||
"Inline agent-context updates",
|
||||
"v0.12.0",
|
||||
]
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def cli_source_texts() -> list[tuple[str, str]]:
|
||||
"""Read every CLI source file once, shared across all parametrized cases."""
|
||||
return [
|
||||
(str(path.relative_to(PROJECT_ROOT)), path.read_text(encoding="utf-8"))
|
||||
for path in SRC_ROOT.rglob("*.py")
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("symbol", FORBIDDEN_SYMBOLS)
|
||||
def test_symbol_absent_from_cli_source(symbol, cli_source_texts):
|
||||
offenders = [rel for rel, text in cli_source_texts if symbol in text]
|
||||
assert not offenders, (
|
||||
f"Forbidden agent-context symbol {symbol!r} still present in: {offenders}"
|
||||
)
|
||||
Reference in New Issue
Block a user