feat: cms softdelet bug fix
This commit is contained in:
@@ -160,6 +160,20 @@ class CmsInstitutionCrudTest(CacheTestCase):
|
||||
resp = self.client.put(inst_detail_url(inst.id), {'code': 'CMS-PUT', 'name': 'Y'})
|
||||
self.assertEqual(resp.status_code, 405, resp.content)
|
||||
|
||||
def test_recreate_soft_deleted_code_returns_400(self):
|
||||
"""软删后用相同编码重建:返回 400 CMS_INSTITUTION_CODE_EXISTS(而非 500)。
|
||||
|
||||
编码唯一约束对软删行仍生效,须按 all_objects 校验,避免写库时撞约束抛 500。
|
||||
"""
|
||||
inst = ensure_institution(name='待停用', code='CMS-SOFT-DUP')
|
||||
self.client.delete(inst_detail_url(inst.id))
|
||||
self.assertFalse(Institution.objects.filter(code='CMS-SOFT-DUP').exists())
|
||||
resp = self.client.post(CMS_INST_URL, {'code': 'CMS-SOFT-DUP', 'name': '重建'})
|
||||
self.assertEqual(resp.status_code, 400, resp.content)
|
||||
self.assertEqual(resp.json()['code'], 'CMS_INSTITUTION_CODE_EXISTS')
|
||||
# 不应产生重复行(仍只有那条已软删的)
|
||||
self.assertEqual(Institution.all_objects.filter(code='CMS-SOFT-DUP').count(), 1)
|
||||
|
||||
|
||||
# ── Banner 上传(写临时静态目录,避免污染仓库)─────────────────────────────────
|
||||
|
||||
|
||||
Reference in New Issue
Block a user