feat: update personal stats and cms change reuqest method
This commit is contained in:
+14
-6
@@ -17,6 +17,14 @@ def u_detail(pk):
|
||||
return f'/api/cms/users/{pk}/'
|
||||
|
||||
|
||||
def u_update(pk):
|
||||
return f'/api/cms/users/{pk}/update/' # 编辑:POST(原 PATCH /{id}/)
|
||||
|
||||
|
||||
def u_disable(pk):
|
||||
return f'/api/cms/users/{pk}/disable/' # 停用:POST(原 DELETE /{id}/)
|
||||
|
||||
|
||||
def make_xlsx(headers, rows):
|
||||
wb = Workbook(); ws = wb.active
|
||||
ws.append(headers)
|
||||
@@ -96,7 +104,7 @@ class CmsUserCrudTest(CacheTestCase):
|
||||
"""方案B:只改姓名、不带角色/机构 → 200,角色与机构保持原值。"""
|
||||
u = create_test_user(phone='13922200050', real_name='原名', role_type='student',
|
||||
institution=self.inst)
|
||||
resp = self.client.patch(u_detail(u.id), {'real_name': '新名'})
|
||||
resp = self.client.post(u_update(u.id), {'real_name': '新名'})
|
||||
self.assertEqual(resp.status_code, 200, resp.content)
|
||||
u.refresh_from_db()
|
||||
self.assertEqual(u.real_name, '新名')
|
||||
@@ -107,7 +115,7 @@ class CmsUserCrudTest(CacheTestCase):
|
||||
"""方案B:传了 role_type 但为空 → 400(不可清空角色)。"""
|
||||
u = create_test_user(phone='13922200051', real_name='x', role_type='student',
|
||||
institution=self.inst)
|
||||
resp = self.client.patch(u_detail(u.id), {'role_type': ''})
|
||||
resp = self.client.post(u_update(u.id), {'role_type': ''})
|
||||
self.assertEqual(resp.status_code, 400, resp.content)
|
||||
self.assertEqual(resp.json()['code'], 'CMS_VALIDATION_ERROR')
|
||||
|
||||
@@ -115,14 +123,14 @@ class CmsUserCrudTest(CacheTestCase):
|
||||
"""方案B:传了 institution=null → 400(不可清空机构)。"""
|
||||
u = create_test_user(phone='13922200052', real_name='x', role_type='student',
|
||||
institution=self.inst)
|
||||
resp = self.client.patch(u_detail(u.id), {'institution': None}, format='json')
|
||||
resp = self.client.post(u_update(u.id), {'institution': None}, format='json')
|
||||
self.assertEqual(resp.status_code, 400, resp.content)
|
||||
self.assertEqual(resp.json()['code'], 'CMS_VALIDATION_ERROR')
|
||||
|
||||
def test_soft_delete(self):
|
||||
u = create_test_user(phone='13922200060', role_type='student')
|
||||
resp = self.client.delete(u_detail(u.id))
|
||||
self.assertEqual(resp.status_code, 204, resp.content)
|
||||
resp = self.client.post(u_disable(u.id))
|
||||
self.assertEqual(resp.status_code, 200, resp.content)
|
||||
self.assertFalse(User.objects.filter(id=u.id).exists()) # 默认管理器过滤
|
||||
obj = User.all_objects.get(id=u.id)
|
||||
self.assertTrue(obj.is_deleted) # 实际未物删
|
||||
@@ -130,7 +138,7 @@ class CmsUserCrudTest(CacheTestCase):
|
||||
def test_recreate_soft_deleted_phone_returns_400(self):
|
||||
"""软删后用相同手机号重建:返回 400 CMS_USER_PHONE_EXISTS(不产生重复行)。"""
|
||||
u = create_test_user(phone='13922200061', role_type='student', institution=self.inst)
|
||||
self.client.delete(u_detail(u.id))
|
||||
self.client.post(u_disable(u.id))
|
||||
self.assertFalse(User.objects.filter(phone='13922200061').exists())
|
||||
resp = self.client.post(CMS_USER_URL, {
|
||||
'phone': '13922200061', 'real_name': '重建', 'role_type': 'student',
|
||||
|
||||
Reference in New Issue
Block a user