1
0
forked from erp-dev/erp

patch: patch testing (api & services)

This commit is contained in:
2025-11-17 10:10:32 +08:00
parent 9c38e2ac09
commit 02a1b77e19
10 changed files with 337 additions and 102 deletions

View File

@@ -565,48 +565,30 @@ class BusinessObjectNewAPITestCase(TestCase):
self.assertEqual(response.data['count'], 0)
def test_current_state_parameters_api(self):
"""测试获取当前状态(最后完成状态)参数 API"""
# 未开始时current_state 为 None应返回无参数消息
"""测试获取当前状态(下一个待执行状态)参数 API"""
# 未开始时current_state 为 state1第一个待执行的应返回 state1 的参数
response = self.client.get(
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/'
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(len(response.data['parameters']), 0)
self.assertIn('message', response.data)
self.assertEqual(response.data['state']['id'], self.state1.id)
self.assertEqual(len(response.data['parameters']), 2)
# 推进完成第一个状态current_state 变为 state1最后完成的状态)
# 推进完成第一个状态current_state 变为 state2下一个待执行的状态)
self.client.post(
f'/api/v1/stateflow/business-objects/{self.business_object.id}/advance/',
{'parameters': {'param1': 'test_value'}},
format='json'
)
# 现在 current_state 是 state1参数)
response = self.client.get(
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/'
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['state']['id'], self.state1.id)
self.assertEqual(response.data['count'], 2)
self.assertEqual(len(response.data['parameters']), 2)
# 测试只获取必填参数
response = self.client.get(
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/?required_only=true'
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['count'], 1)
self.assertEqual(response.data['parameters'][0]['key'], 'param1')
# 推进完成第二个状态current_state 变为 state2无参数
self.client.post(f'/api/v1/stateflow/business-objects/{self.business_object.id}/advance/')
# 现在 current_state 是 state2参数)
response = self.client.get(
f'/api/v1/stateflow/business-objects/{self.business_object.id}/current_state_parameters/'
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['state']['id'], self.state2.id)
self.assertEqual(response.data['count'], 0)
self.assertEqual(len(response.data['parameters']), 0)
def test_state_parameters_api(self):
"""测试 State 的参数 API"""