Files
hermes-agent/tests/scripts/test_check_compat_pointers.py

51 lines
1.6 KiB
Python

"""The compatibility-pointer scanner only traverses first-party Python trees."""
import importlib.util
import os
from pathlib import Path
SCRIPT = Path(__file__).resolve().parents[2] / "scripts" / "check_compat_pointers.py"
def _load():
spec = importlib.util.spec_from_file_location("check_compat_pointers", SCRIPT)
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)
return mod
def test_py_files_prunes_dependency_trees_before_descent(tmp_path, monkeypatch):
mod = _load()
(tmp_path / "package").mkdir()
(tmp_path / "package" / "source.py").write_text("VALUE = 1\n", encoding="utf-8")
(tmp_path / "package" / "apps").mkdir()
(tmp_path / "package" / "apps" / "nested.py").write_text("VALUE = 3\n", encoding="utf-8")
excluded = [
tmp_path / ".venv",
tmp_path / "venv",
tmp_path / "node_modules",
tmp_path / "package" / "__pycache__",
tmp_path / "package" / "node_modules",
]
for directory in excluded:
directory.mkdir(parents=True)
(directory / "dependency.py").write_text("VALUE = 2\n", encoding="utf-8")
visited = []
real_walk = os.walk
def tracking_walk(root):
for dirpath, dirnames, filenames in real_walk(root):
visited.append(Path(dirpath))
yield dirpath, dirnames, filenames
monkeypatch.setattr(mod, "ROOT", tmp_path)
monkeypatch.setattr(mod.os, "walk", tracking_walk)
assert set(mod._py_files()) == {
tmp_path / "package" / "source.py",
tmp_path / "package" / "apps" / "nested.py",
}
assert tmp_path in visited
assert not set(excluded) & set(visited)