B-42: 导入功能加固——逐工作表确认、流式上传与诊断证据

This commit is contained in:
腾讯WorkBuddy
2026-08-17 01:00:19 +08:00
parent 7f1a93f6a6
commit 486842963e
15 changed files with 2019 additions and 183 deletions
+23 -4
View File
@@ -209,12 +209,30 @@ class ServerAuthMatrixTests(unittest.TestCase):
)
assert status == 200, data
cls.b_batch_id = as_json(data)["batch_id"]
cls.confirm_all_sheets(cls.admin, cls.b_batch_id)
status, _, data = cls.cashier_a.post_multipart(
"/api/parse", {}, CITIC_SAMPLE.name, CITIC_SAMPLE.read_bytes()
)
assert status == 200, data
cls.a_batch_id = as_json(data)["batch_id"]
cls.confirm_all_sheets(cls.cashier_a, cls.a_batch_id)
@classmethod
def confirm_all_sheets(cls, client, batch_id: int) -> None:
status, _, data = client.get(f"/api/batches/{batch_id}/sheets")
assert status == 200, data
names = [
sheet["sheet_name"]
for sheet in as_json(data)["sheets"]
if sheet["outcome"] == "parsed"
]
if not names:
return
status, _, data = client.post_json(
f"/api/batches/{batch_id}/confirm", {"sheets": names}
)
assert status == 200, data
@classmethod
def tearDownClass(cls) -> None:
@@ -459,10 +477,11 @@ class ServerAuthMatrixTests(unittest.TestCase):
payload = as_json(data)
self.assertEqual("duplicate", payload["status"])
self.assertEqual(self.a_batch_id, payload["batch_id"])
self.assertEqual("中信银行", payload.get("bank"))
self.assertTrue(payload.get("transactions", 0) > 0)
self.assertIn("period_start", payload)
self.assertIn("warnings", payload)
self.assertTrue(payload.get("sheets"))
self.assertEqual("中信银行", payload["sheets"][0].get("bank"))
self.assertTrue(payload["sheets"][0].get("transactions", 0) > 0)
self.assertIn("period_start", payload["sheets"][0])
self.assertIn("warnings", payload["sheets"][0])
# ------------------------------------------------------------------
# Disable / reset flows