fix(assets): 手动送审如实回报,送不出去返回 503 而非空态
submit_asset_for_review 改为返回 bool(是否真进入审核);submit-review 端点据此: 当审核服务未启用/未配 SDK/火山未回 Id/调用异常导致没真正送出去,且素材非终态时, 返回 503「审核服务暂不可用」而不是空 review_status —— 否则前端会把「没送出去」 误显示成「审核中」,刷新就打回灰盾(待审核)。新增 503/200 两条回归测试。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -162,6 +162,27 @@ class SubmitReviewTests(TestCase):
|
||||
res = self.client.post(f"/api/assets/{self.product.id}/submit-review/")
|
||||
self.assertEqual(res.status_code, 400)
|
||||
|
||||
def test_submit_review_503_when_submission_did_not_start(self):
|
||||
"""送审没真正发出去(服务未启用/未配 SDK/火山未回 Id),且素材非终态 → 503,
|
||||
review_status 仍为空。这样前端不会把「没送出去」误显示成「审核中」(刷新即打回原形)。"""
|
||||
with patch("apps.assets.review.submit_asset_for_review", return_value=False) as sub:
|
||||
res = self.client.post(f"/api/assets/{self.person.id}/submit-review/")
|
||||
sub.assert_called_once()
|
||||
self.assertEqual(res.status_code, 503)
|
||||
self.assertEqual(res.json().get("review_status"), "")
|
||||
|
||||
def test_submit_review_200_when_started(self):
|
||||
"""真正进入审核(processing)→ 200 + 真态,供前端落 processing。"""
|
||||
def _mark_processing(asset):
|
||||
asset.review_status = "processing"
|
||||
asset.save(update_fields=["review_status"])
|
||||
return True
|
||||
|
||||
with patch("apps.assets.review.submit_asset_for_review", side_effect=_mark_processing):
|
||||
res = self.client.post(f"/api/assets/{self.person.id}/submit-review/")
|
||||
self.assertEqual(res.status_code, 200)
|
||||
self.assertEqual(res.json().get("review_status"), "processing")
|
||||
|
||||
|
||||
class ReviewScopeTests(TestCase):
|
||||
"""送审范围 = 角色定妆照(person)/ 三视图(tri_view)/ 分镜图(storyboard);图片趴不送审。"""
|
||||
|
||||
Reference in New Issue
Block a user