From 3435f33697f40c956af9be72700fead2980fea45 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 24 Aug 2026 17:17:51 +0800
Subject: [PATCH] fix: validate empty point-cloud inference inputs

---
 tests/test_serve_workbench_console.py |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/tests/test_serve_workbench_console.py b/tests/test_serve_workbench_console.py
index 674c884..c267bce 100644
--- a/tests/test_serve_workbench_console.py
+++ b/tests/test_serve_workbench_console.py
@@ -123,6 +123,28 @@
             self.assertEqual(result["name"], "corridor.las")
             self.assertEqual(staged.read_bytes(), b"las-bytes")
 
+    def test_model_inference_rejects_empty_and_incomplete_las_uploads(self) -> None:
+        with tempfile.TemporaryDirectory() as temp_dir:
+            root = Path(temp_dir)
+            empty = root / "empty.ply"
+            empty.write_bytes(b"")
+            with self.assertRaisesRegex(MODULE.ApiError, "文件为空"):
+                MODULE.validate_pointcloud_model_input(empty)
+
+            incomplete = root / "tile_000_000.las"
+            incomplete.write_bytes(b"las-bytes")
+            with self.assertRaisesRegex(MODULE.ApiError, "文件不完整"):
+                MODULE.validate_pointcloud_model_input(incomplete)
+
+            empty_las = root / "empty.las"
+            header = bytearray(227)
+            header[:4] = b"LASF"
+            header[24:26] = bytes((1, 2))
+            header[94:96] = (227).to_bytes(2, "little")
+            empty_las.write_bytes(header)
+            with self.assertRaisesRegex(MODULE.ApiError, "没有点记录"):
+                MODULE.validate_pointcloud_model_input(empty_las)
+
     def test_photo_reconstruction_request_requires_three_to_thirty_photos(self) -> None:
         handler = self.make_handler()
         with self.assertRaisesRegex(MODULE.ApiError, "at least three"):

--
Gitblit v1.9.3