Harden AI Docker runtime imports
This commit is contained in:
@@ -27,6 +27,9 @@ def test_backend_dockerfile_installs_approved_gis_runtime_stack() -> None:
|
||||
assert "libgeos-dev" in dockerfile
|
||||
assert "libproj-dev" in dockerfile
|
||||
assert "proj-bin" in dockerfile
|
||||
assert "libxcb1" in dockerfile
|
||||
assert "libgl1" in dockerfile
|
||||
assert "libglib2.0-0" in dockerfile
|
||||
|
||||
|
||||
def test_backend_pyproject_exposes_gis_optional_dependency_group() -> None:
|
||||
@@ -47,6 +50,9 @@ def test_all_in_one_dockerfile_can_opt_into_ai_dependencies_without_base_install
|
||||
assert 'extras=".[gis,ai]"' in dockerfile
|
||||
assert "python scripts/gis_import_smoke.py" in dockerfile
|
||||
assert "yolo_preflight.py" in dockerfile
|
||||
assert "libxcb1" in dockerfile
|
||||
assert "libgl1" in dockerfile
|
||||
assert "libglib2.0-0" in dockerfile
|
||||
|
||||
|
||||
def test_compose_does_not_require_missing_root_env_file() -> None:
|
||||
|
||||
@@ -12,6 +12,8 @@ from app.services.detection_georeferencing import pixel_bbox_to_epsg4326_polygon
|
||||
from app.services.detection_service import DetectionService
|
||||
from app.services.model_registry_service import ModelRegistryService
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
class FakeSession:
|
||||
def __init__(self, objects=None) -> None:
|
||||
@@ -171,6 +173,14 @@ def test_yolo_configured_model_reports_configured_with_local_model_and_dependenc
|
||||
assert model.version == settings.yolo_model_version
|
||||
|
||||
|
||||
def test_yolo_dependency_check_uses_real_imports_not_find_spec() -> None:
|
||||
source = (ROOT / "backend" / "app" / "services" / "yolo_adapter.py").read_text(encoding="utf-8")
|
||||
|
||||
assert 'find_spec("ultralytics")' not in source
|
||||
assert "import ultralytics" in source
|
||||
assert "import torch" in source
|
||||
|
||||
|
||||
def test_yolo_run_requires_tile_manifest_path(tmp_path: Path) -> None:
|
||||
db, project_id, dataset_id = _project_and_dataset()
|
||||
settings = _settings(tmp_path)
|
||||
|
||||
Reference in New Issue
Block a user