NeAR / tests /test_app_architecture.py
luh1124's picture
feat(app): block Gradio bind until CPU weights load (no background preload)
da36f0f
from __future__ import annotations
import ast
import unittest
from pathlib import Path
APP_PATH = Path(__file__).resolve().parents[1] / "app.py"
def _load_tree() -> ast.Module:
return ast.parse(APP_PATH.read_text(encoding="utf-8"))
def _get_function(tree: ast.Module, name: str) -> ast.FunctionDef:
for node in tree.body:
if isinstance(node, ast.FunctionDef) and node.name == name:
return node
raise AssertionError(f"Function {name!r} not found in app.py")
def _called_names(function_node: ast.FunctionDef) -> set[str]:
names: set[str] = set()
for node in ast.walk(function_node):
if isinstance(node, ast.Call):
if isinstance(node.func, ast.Name):
names.add(node.func.id)
elif isinstance(node.func, ast.Attribute):
names.add(node.func.attr)
return names
class AppArchitectureTests(unittest.TestCase):
def test_default_page_load_no_longer_preprocesses_default_image(self) -> None:
source = APP_PATH.read_text(encoding="utf-8")
self.assertNotIn("demo.load(preprocess_default_image", source)
def test_preview_hdri_stays_off_heavy_model_loader_path(self) -> None:
preview_hdri = _get_function(_load_tree(), "preview_hdri")
called = _called_names(preview_hdri)
self.assertNotIn("ensure_near_pipeline", called)
self.assertNotIn("set_tone_mapper", called)
self.assertIn("ToneMapper", called)
def test_generate_mesh_only_uses_geometry_loader(self) -> None:
generate_mesh = _get_function(_load_tree(), "generate_mesh")
called = _called_names(generate_mesh)
self.assertIn("ensure_geometry_on_cuda", called)
self.assertNotIn("ensure_near_on_cuda", called)
def test_render_preview_calls_pipeline_render_view(self) -> None:
render_preview = _get_function(_load_tree(), "render_preview")
called = _called_names(render_preview)
self.assertIn("render_view", called)
def test_generate_slat_uses_near_cuda_loader(self) -> None:
generate_slat = _get_function(_load_tree(), "generate_slat")
called = _called_names(generate_slat)
self.assertIn("ensure_near_on_cuda", called)
def test_cpu_preload_is_blocking_before_launch_not_background_thread(self) -> None:
source = APP_PATH.read_text(encoding="utf-8")
near_launch = _get_function(_load_tree(), "_near_launch")
called = _called_names(near_launch)
self.assertIn("run_model_cpu_preload_blocking", called)
self.assertNotIn("start_model_cpu_preload_thread", source)
if __name__ == "__main__":
unittest.main()