Files
Renderive/render_3D/datoviz/testing/test_scene_query_source_guard.py
T
2026-08-14 01:54:38 +08:00

45 lines
1.1 KiB
Python

from pathlib import Path
QUERY_DIR = Path("src/scene/query")
FORBIDDEN_PATTERNS = (
"pick",
"probe",
"Pick",
"Probe",
"PICK",
"PROBE",
"DVZ_VISUAL_TYPE_",
"DVZ_SCENE_VISUAL_FAMILY_IMAGE",
"DVZ_SCENE_VISUAL_FAMILY_LABELS",
"DVZ_SCENE_VISUAL_FAMILY_VOLUME",
"image_query",
"labels_query",
"volume_query",
"_attr_index(",
"visual->attrs",
"visual->field",
"visual->texture",
"visual->volume",
"visual->path",
"visual->mesh",
"visual->buffer",
)
def test_scene_query_core_has_no_visual_family_internals() -> None:
if not QUERY_DIR.exists():
return
checked = False
for path in sorted(QUERY_DIR.rglob("*")):
if path.suffix not in {".c", ".cc", ".cpp", ".h", ".hpp"}:
continue
checked = True
text = path.read_text(encoding="utf-8")
for pattern in FORBIDDEN_PATTERNS:
assert pattern not in text, f"{path} contains forbidden query-core pattern {pattern!r}"
assert checked, "src/scene/query must contain at least one checked source/header file"