29 lines
914 B
Python
29 lines
914 B
Python
from __future__ import annotations
|
|
|
|
import ast
|
|
from pathlib import Path
|
|
|
|
|
|
def _imports_module(path: Path, module_name: str) -> bool:
|
|
tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
|
|
for node in ast.walk(tree):
|
|
if isinstance(node, ast.ImportFrom) and node.module == module_name:
|
|
return True
|
|
if isinstance(node, ast.Import):
|
|
if any(alias.name == module_name for alias in node.names):
|
|
return True
|
|
return False
|
|
|
|
|
|
def test_cli_and_mcp_tools_do_not_import_backend_adapter() -> None:
|
|
root = Path(__file__).resolve().parents[2]
|
|
|
|
assert not _imports_module(
|
|
root / "src" / "wf_cli" / "context.py",
|
|
"wf_mcp.broker.service.workflow_api_backend",
|
|
)
|
|
assert not _imports_module(
|
|
root / "src" / "wf_mcp" / "workflow_surface" / "tools.py",
|
|
"wf_mcp.broker.service.workflow_api_backend",
|
|
)
|