feat: cms softdelet bug fix

This commit is contained in:
2026-06-11 13:57:46 +08:00
parent 32915bc6b4
commit f2dcf3d490
6 changed files with 60 additions and 8 deletions
+13
View File
@@ -68,6 +68,19 @@ class CmsDepartmentTest(CacheTestCase):
self.assertFalse(Department.objects.filter(id=d.id).exists())
self.assertTrue(Department.all_objects.get(id=d.id).is_deleted)
def test_recreate_soft_deleted_name_returns_400(self):
"""软删后用相同名称重建:返回 400 CMS_DEPARTMENT_NAME_EXISTS(不产生重复行)。
按 all_objects 校验,避免与已停用科室同名而静默新建重复记录。
"""
d = Department.objects.create(name='康复科', category='临床')
self.client.delete(d_detail(d.id))
self.assertFalse(Department.objects.filter(name='康复科').exists())
resp = self.client.post(CMS_DEPT_URL, {'name': '康复科', 'category': '临床'})
self.assertEqual(resp.status_code, 400, resp.content)
self.assertEqual(resp.json()['code'], 'CMS_DEPARTMENT_NAME_EXISTS')
self.assertEqual(Department.all_objects.filter(name='康复科').count(), 1)
def test_import_and_export(self):
f = make_xlsx(['科室名称', '分类'], [['心内科', '临床'], ['', 'x'], ['心内科', '临床']])
resp = self.client.post('/api/cms/departments/import/', {'file': f}, format='multipart')