45 lines
1.1 KiB
Python
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"
|