Files
bytedance--deer-flow/backend/tests/test_skill_container_path_defaults.py
2026-07-13 11:59:58 +08:00

42 lines
1.6 KiB
Python

"""Regression tests for the skills sandbox container root default."""
from __future__ import annotations
import ast
from pathlib import Path
def test_mnt_skills_literal_is_owned_by_skill_constants_module():
package_root = Path(__file__).parents[1] / "packages" / "harness" / "deerflow"
allowed = {package_root / "constants.py"}
offenders: list[str] = []
for path in package_root.rglob("*.py"):
if path in allowed:
continue
tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
for node in ast.walk(tree):
if isinstance(node, ast.Constant) and node.value == "/mnt/skills":
offenders.append(str(path.relative_to(package_root)))
assert offenders == []
def test_runtime_middlewares_use_top_level_skills_container_constant():
package_root = Path(__file__).parents[1] / "packages" / "harness" / "deerflow"
offenders: list[str] = []
for relative_path in (
Path("agents/middlewares/durable_context_middleware.py"),
Path("agents/middlewares/tool_error_handling_middleware.py"),
):
path = package_root / relative_path
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 == "deerflow.config.skills_config":
imported_names = {alias.name for alias in node.names}
if "DEFAULT_SKILLS_CONTAINER_PATH" in imported_names:
offenders.append(str(relative_path))
assert offenders == []